@lesshasteμμ μ μν λλ‘
λ Όλ¬Έ - http://cbio.ensmp.fr/~jvert/svn/bibli/local/Gower1971general.pdf
μΆ©λΆν κ΄μ¬μ΄ μμΌλ©΄ ꡬνν μ μμ΅λκΉ?
@jnothman @amueller @agramfort
κ°μ¬ ν΄μ.
Rμ daisy
λν μ΄ λ¬Έμλ https://stat.ethz.ch/R-manual/R-devel/library/cluster/html/daisy.html μ λν μΈκΈ° μλ μ¬μ© μ¬λ‘μ΄λ―λ‘ κ΄λ ¨μ΄ μμ μ μμ΅λλ€. κ°μ κ³μ.
μ΄λ μ μ? μ΄λ€ λ§₯λ½μμ?
@agramfort gitterμμ μ μνμ΅λλ€. μ΄ κ³μμ μ£Όμ κ΄μ¬μ¬λ λ³μμ νΌν© μ ν(μ¦, λ²μ£Όν, μ«μν, μμν)μ΄ μλ κ²½μ°μ
λλ€. ν κ°μ§ μΈκΈ° μλ μ¬μ© μ¬λ‘λ νΌν© μ νμΌλ‘ λ°μ΄ν°λ₯Ό ν΄λ¬μ€ν°λ§ν λ μμμ μΈκΈν R ν¨ν€μ§ daisy()
μ
λλ€(https://cran.r-project.org/web/packages/cluster/cluster.pdfμ 27νμ΄μ§ μ°Έμ‘°). . λ³΄λ€ μΌλ°μ μΌλ‘ http://www.clustan.talktalk.net/gower_similarity.html μ "Gowerμ μΌλ° μ μ¬μ± κ³μλ ββνΌν© λ°μ΄ν° μ νμ λν κ°μ₯ μΈκΈ° μλ κ·Όμ λ μΈ‘μ μ€ νλ"λΌκ³ μ£Όμ₯ν©λλ€. κ·Έλ΄λ―ν μ£Όμ₯μ²λΌ 보μ
λλ€.
μ΄μ λκΈ°λ₯Ό λΆμ¬ν λ²€μΉλ§ν¬ λλ μ€λλ ₯ μλ μκ° μμ΅λκΉ?
@agramfort νμ¬ νΌν© λ°μ΄ν° μ νμ λν λΉμ μ¬μ± κ³μλ₯Ό κ³μ°νλ λ€λ₯Έ λ°©λ²μ΄ μκ³ μ΄κ²μ΄ νμ€μΈ κ² κ°μ΅λλ€. μ¬λλ€μ΄ Gower κ³μκ° λ¬΄μμΈμ§ μ€λͺ νκ±°λ νΌν© λ°μ΄ν° μ νμ λν μ¬μ©μ μ μνλ μ¨λΌμΈμμ λ§μ μμ μ§λ¬Έ/λ΅λ³μ μ°Ύμ μ μμ§λ§ μμ§ λ²€μΉλ§ν¬λΌκ³ λΆλ₯Ό μ μλ κ²μ μμ΅λλ€. Google νμμ λ°λ₯΄λ©΄ μλ³Έ λ Όλ¬Έμ 2298ν μΈμ©λμμ΅λλ€.
μ’μ, λλ νμ νλ€ :)
@agramfort μ΄ λ³κ²½μ λ무μ λν κΈ°λ³Έ λ²μ£Όν λ³μ μ§μμ λμ νλ https://github.com/scikit-learn/scikit-learn/pull/4899λ₯Ό νλ₯νκ² λ³΄μν©λλ€.
κ·Έλ κΈ΄ νμ§λ§, λλ μ΄μ scikit-learnμ΄ νμ¬ μμμ λν κΈ°λ³Έ μ§μμ΄ μ ν μλ€λ κ²μ κΉ¨λ¬μμ΅λλ€. μμμ νΉμ§μ μ§μνλ 첫 λ²μ§Έ λ¨κ³λ‘ κΈμ μ μΌλ‘ μκ°ν μ μλ€κ³ μκ°ν©λλ€.
@amueller [New Feature]
νκ·Έ μ§μ μμ ...
μλ νμΈμ,
μ΄λ»κ²λ κΈ°μ¬νκΈ° μν΄ μλ³Έ λ¬Έμμ λ°λΌ Gower ν¨μλ₯Ό ꡬννκ³ pdist λͺ¨λμ νμν κ° μμ μ¬νμ ꡬννμ΅λλ€. pdistλ λ΄λΆμ μΌλ‘ νΌν© λ°μ΄ν°κ° μλ νλ ¬μ μ¬μ©νλ κ²½μ° μ€ν¨ν μ¬λ¬ μμΉ λ³νμ μννκΈ° λλ¬Έμ λλ€.
μ§κΈκΉμ§ μ΄κ²μΌλ‘ μ»μ κ²°κ³Όλ Rμ λ°μ΄μ§ ν¨μμμμ λμΌν©λλ€.
μμ€ μ½λλ λ€μ jupyter λ ΈνΈλΆμμ μ¬μ©ν μ μμ΅λλ€. https://sourceforge.net/projects/gower-distance-4python/files/
λ§μκ» μ¬μ©νμΈμ
μ΄κ²μ λν μ λ°μ΄νΈκ° μλμ§ κΆκΈν©λλ€. λν @marcelobeckmannμ΄ μΈκΈν λ¬Έμ κ° μ¬μ ν κ΄λ ¨μ±μ΄ μμ΅λκΉ?
@ ashimb9 μ°λ¦¬κ° @marcelobeckmannμμ μ½λλ₯Ό ν΅ν© ν μ¬λμ΄ νμ 보μΈλ€
@agramfort ν ,
μλ νμΈμ, κΈ°λ³Έ λ°μ΄ν°κ° μμ ν μ«μλΌκ³ κ°μ νλ pdistμ μΌλΆ λΉκ³΅κ° ν¨μ(μ: _convert_to_double, _copy_array_if_base_present)κ° μμ΅λλ€. μ΄λ λ²μ£Όν λ°μ΄ν°κ° μλ λ°μ΄ν° νλ μμ΄ μλ κ²½μ° μ¬μ€μ΄ μλλλ€.
μ λ μ΄ μ½λλ₯Ό ν΅ν©νκ³ ν¬ν¬μμ μ¬μ©ν μ μλλ‘ μμν©λλ€. μ΄ ν°μΌμ μ μκ² ν λΉν μ μμ΅λλ€.
github ν λΉ κΈ°λ₯μ ν ꡬμ±μμκ²λ§ μλν©λλ€.
2017λ 7μ 17μΌ μ€ν 7μ 32λΆμ "marcelobeckmann" [email protected]μ΄ μμ±νμ΅λλ€.
μλ νμΈμ, λͺ κ°μ§ κ°μΈ κΈ°λ₯μ΄ μμ΅λλ€(μ: _convert_to_double,
κΈ°λ³Έ λ°μ΄ν°κ° λ€μκ³Ό κ°λ€κ³ κ°μ νλ pdistμ _copy_array_if_base_present)
λ°μ΄ν° νλ μμ΄ μλ κ²½μ°μλ μ¬μ€μ΄ μλ μμ ν μ«μμ λλ€.
λ²μ£Όν λ°μ΄ν°.μ΄ μ½λλ₯Ό ν΅ν©νκ³ ν¬ν¬μμ μ¬μ©ν μ μλλ‘ μμν©λλ€.
μ΄ ν°μΌμ λμκ² ν λΉν μ μμ΅λλ€.β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈ
https://github.com/scikit-learn/scikit-learn/issues/5884#issuecomment-315707830 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AAEz62L3HHzGsSerW5G3n-Z8rrNoV6mwks5sOyoTgaJpZM4Glm0p
.
κ±±μ νμ§ λ§μΈμ. λ΄κ° κ·Έκ²μ ν¬ν¬ν κ²μ΄κ³ λΉμ μ λμ€μ μ½λλ₯Ό μ»μ μ μμ΅λλ€. μ μκ² μ€μν κ²μ κΈ°μ¬νλ κ²μ λλ€. μλ£λλ©΄ μλ € λλ¦¬κ² μ΅λλ€.
μ΄κ²μ λ°μ μ£Όμ @marcelobeckmann μκ² κ°μ¬λ립λλ€. λΉμ μ΄ κ·Έκ²μμλ λμ (κ·Έλ¦¬κ³ κ·Έκ²μ΄ κ°λ₯ν κ²½μ°) Rμ λ°μ΄μ§ ν¨ν€μ§μμ ꡬν λ κ²μ²λΌ NaN κ°μ΄μλ λ°μ΄ν°μ λν gower κ³μ°μ λν μ§μμ μΆκ°νλ κ²μ κ³ λ €ν κ²μΈμ§ κΆκΈν©λλ€ (μμμλ μ°Έμ‘°) ?
Gowerλ₯Ό sklearn.metrics.pairwiseμ ν΅ν©νμ΅λλ€(NaN κ° μ²λ¦¬λ κ΄μ°°). λΆκΈ°λ μ½λλ₯Ό μ μΆνκΈ° μ μ λͺ κ°μ§ λ¨μ ν μ€νΈλ₯Ό μ€λΉν κ²μ λλ€.
@marcelobeckmann νΉν NaN μ§μμ ν¬ν¨ν΄ μ£Όμ μ κ°μ¬ν©λλ€! :)
μΆμ : μ κ° μ μν μ μλ κ²½μ°, λ¨μ ν μ€νΈ λ±μ μννλ λμ κ²ν μκ° μ½λλ₯Ό λ³Ό μ μλλ‘ ν μμ²μ μμνλ κ²μ κ³ λ €ν μ μμ΅λλ€.
λ©°μΉ μ μ b5884λ‘ ν 리νμ€νΈλ₯Ό νμ΅λλ€.
μ, κ²ν λκΈ° μ€μ λλ€.
2017λ
8μ 17μΌ 23:40, Marcelo Beckmann μλ¦Ό @github.com
μΌλ€:
λ©°μΉ μ μ b5884λ‘ ν 리νμ€νΈλ₯Ό νμ΅λλ€.
β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈ
https://github.com/scikit-learn/scikit-learn/issues/5884#issuecomment-323076581 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AAEz69uMu0XsoAUfvwWikkadjGCk5yvKks5sZELKgaJpZM4Glm0p
.
CIμμ μꡬνλ μ¬νμ λ³κ²½νμΌλ©° λͺ¨λ κ²μ¬λ₯Ό ν΅κ³Όνμ΅λλ€.
@marcelobeckmann μκ³ νμ
¨μ΅λλ€ ! ν 659λ₯Ό λ€μκ³Ό κ°μ΄ λ³κ²½ν μ μμ΅λλ€.
ranges_of_numeric[col] = (1 - min / max, 0)[max == 0] if (max!=0) else 0.0
κ·Έλ μ§ μμΌλ©΄ λ λ²μ§Έ ν μ€νΈ μΌμ΄μ€μμ μ λ‘ κ²½κ³ λ‘ λλλλ€.
μλ νμΈμ, Pierre Wessmanμ΄ μ μν λλ‘ κ²½κ³ λ₯Ό νΌνκΈ° μν΄ μ½λλ₯Ό λ³κ²½νμΌλ©° CIλ λ Ήμμ λλ€. λ΄ μ½λλ₯Ό κ²ν ν μ¬λμ΄ νμν©λλ€.
@marcelobeckmann λ° μ μ¬μ μΌλ‘ λ€λ₯Έ μ¬λ.
μλ Marcelo(λλ μ μ¬μ μΌλ‘ λ€λ₯Έ μ¬λ), μ¬κΈ°μ λ°°μΉν gower κ³μ ꡬνκ³Ό κ΄λ ¨νμ¬ λͺ κ°μ§ κ°λ¨ν μ§λ¬Έμ΄ μμ΅λλ€: https://sourceforge.net/projects/gower-distance-4python/files/.
μλ λ°μ΄ν°λ₯Ό ν¨μμ 곡κΈνκΈ° μν΄ ν¬λ dataFrameμ΄ νμν©λκΉ μλλ©΄ numpy λ°°μ΄λ μ¬μ©ν μ μμ΅λκΉ?
λ΄ λ°μ΄ν°λ₯Ό numpy λ°°μ΄λ‘ κ°μ Έμ€κ³ μμ΅λλ€. κ³ μ IDμΈ μ²« λ²μ§Έ μ΄μ μ μΈν λͺ¨λ μ΄μ μ«μ μ€μμ λλ€. λ κ°μ§ λ¬Έμ κ° λ°μν©λλ€.
첫째, ν¨μλ₯Ό μ€νν λ dtype U7μ΄ κ°μ²΄λ‘ λ³νλμλ€λ λ°μ΄ν° λ³ν κ²½κ³ λ₯Ό λ°νν©λλ€!!. μ΄λ€ μ΄μ λ‘ λ°°μ΄ νλͺ©μ΄ λ°μ΄νλ‘ λ¬Άμ¬ λ¬Έμμ΄μ΄κΈ° λλ¬Έμ΄λΌκ³ κ°μ νμ΅λλ€. κ·Έλμ μλ₯Ό λ€μ΄ λ°°μ΄ νλͺ©μ μ νμ int32λ‘ μΊμ€ν νλλ° μ¬μ ν int32κ° κ°μ²΄λ‘ λ³νλμλ€λ λ³ν μ€λ₯κ° λ°μν©λλ€.
λ λ²μ§Έλ‘, μλ§λ μμ λ§ν¬λμμ κ²μ λλ€. ν¨μλ₯Ό μ€ννκ³ κ²°κ³Όλ₯Ό νλ‘ν ν λλ§λ€ λ€λ₯Έ μκ°ν(ν¬μΈνΈμ λ€λ₯Έ νΌμ§)λ₯Ό λ°μ΅λλ€.
μ λ΄μ©μ λν΄ μ‘°μΈ λΆνλλ €λ λ κΉμ?
λ§€μ° κ°μ¬ν©λλ€
μλ μ리,
Gower 거리 ꡬνμ κ΄μ¬μ κ°μ Έμ£Όμ μ κ°μ¬ν©λλ€.
λ΄κ° ν 리νμ€νΈλ₯Ό ν μ½λλ scikit Learn 컀미ν°μ μν΄ μΉμΈλμ§ μμμ§λ§(CIλ λ Ήμμ΄κ³ κ²ν λ₯Ό κΈ°λ€λ¦¬κ³ μμ΅λλ€), μ λ μ΄ μ΅μ μ μμ μ μΈ κ΅¬νμ https://sourceforge.net/projects/gower-distanceλ‘ νΈμνμ΅λλ€.
κ·νμ μ§λ¬Έμ λν΄ μμλ³΄κ² μ΅λλ€.
λ΅λ³: μ΄ μ λ²μ 3μμλ DataFrame λλ Numpyλ₯Ό μ¬μ©ν μ μμ΅λλ€. ν¬μ νλ ¬λ μ§μλ©λλ€.
λ΅λ³: μ΄ μ λ²μ μ μ«μ λ²μ£Ό μμ±μ μ§μν©λλ€. μΆκ° 맀κ°λ³μ categorical_featuresκ° μμ΅λλ€. λ°°μ΄μ false(μ«μ μμ±μ κ²½μ°) λλ true(λ²μ£Ό μμ±μ κ²½μ°)λ‘ μ€μ ν μ μμ΅λλ€.
λ΅λ³: λ΄κ° νΈμν μ λ²μ μ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
μ΄ PRμ κ²ν ν μμ μ΄μ§λ§ κ·Έλ€μ§ λμ§λ μμ΅λλ€.
μ°μ ATM
μλ μ리,
μ΅μ κ²μ gower_function-v3.ipynbμ΄λ©°, λ€, nanμ μ²λ¦¬ν©λλ€.
λ²μ
λ²μ£Όν attκ° μλ κ²½μ°μλ§ gower_distance(X)λ₯Ό μ¬μ©ν μ μμ΅λλ€.
μ«μ λλ gower_distance(X, categorical_features=[False, True,
False,...]), cat attrμ΄ μ«μλ‘ νμλλ κ²½μ°.
μ΄ κ΅¬ν λλ¬Έμ λ¬Έμ κ° μμΌλ©΄ κ°μΈμ μΌλ‘ μλ €μ£Όμμμ€.
λλ μΈν°λ·μ λ°μ΄λΆμ¬μ scikit Learnμ κ΄μ¬μ¬κ° λμ΄μλ μ λ©λλ€.
ν μΌμ΄ λ§μΌλ©° μ¬κΈ°μ λν΄ λ
ΌμνκΈ°μ κ°μ₯ μ’μ κ³³μ μλλλ€.
2017λ 11μ 30μΌ 11μ 51λΆμ "Ali-ry" [email protected]μμ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
@marcelobeckmann https://github.com/marcelobeckmann
μλ
νμΈμ Marcelo(λλ μ μ¬μ μΌλ‘ λ€λ₯Έ μ¬λ), κ·νμ
μ¬κΈ°μ λ°°μΉν gower κ³μμ ꡬν:
https://sourceforge.net/projects/gower-distance-4python/files/
1.
gower_single_function-v2.ipynbλ μ΅μ’
λ²μ μ΄λ©° λ€μμ μ²λ¦¬ν©λλ€.
NaNλμ?
2.
λ μ€μν κ²μ μ΄ κ΅¬νμ ν΅ν΄
νλμ λ¨μΌ μν λ°μ΄ν° λ΄ μ μ¬μ±? μλνλ©΄ λλΆλΆμ κ²½μ° λΉμ μ΄
νμν κ²μ λ΄μμ κ° κ΄μ°° μ μ¬μ΄μ κ³ μ΄ κ±°λ¦¬λ₯Ό μ»λ κ²μ
λλ€.
λ κ°μ λ€λ₯Έ μν λ°μ΄ν°λ₯Ό λΉκ΅νλ κ²κ³Όλ λμ‘°μ μΌλ‘ νλμ λ¨μΌ μν λ°μ΄ν°.
λ§€μ° κ°μ¬ν©λλ€
β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ
λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈ
https://github.com/scikit-learn/scikit-learn/issues/5884#issuecomment-348166596 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AA3G79jWVbpBNdAFOAim7wJS92-QGl0dks5s7pa8gaJpZM4Glm0p
.
μλ μ리,
μ΅μ λ²μ μ gower_function-v3.ipynbμ΄λ©° scikit learnμ νΈμν κ²μ 볡μ¬λ³Έμ λλ€. μ, nan μ νλ₯Ό λ€λ£Ήλλ€.
λ²μ£Ό μμ±μ΄ μ«μκ° μλ κ²½μ° gower_distance(X)λ§ μ¬μ©ν μ μκ³ λ²μ£Ό μμ±μ΄ μ«μλ‘ νμλλ κ²½μ° gower_distance(X, categorical_features=[False, True, False,...])λ₯Ό μ¬μ©ν μ μμ΅λλ€.
λ¬Έμ κ° μμΌλ©΄ κ°μΈμ μΌλ‘ μλ €μ£Όμμμ€. λ΄κ° μΈν°λ·μ νΈμν μ΄ κ΅¬νμ scikit Learnμ κ΄μ¬μ¬κ° μλμ΄μΌ νκ³ , ν μΌμ΄ λ§μΌλ©° μ¬κΈ°κ° scikit μΈλΆμ μλ κ²μ λ ΌμνκΈ°μ κ°μ₯ μ’μ κ³³μ΄ μλκΈ° λλ¬Έμ λλ€. νλ‘μ νΈλ₯Ό λ°°μ°μμμ€.
@marcelobeckmann μλ
νμΈμ Marcelo,
λ²μ£Όν λ³μκ° μ«μ νμμΌλ‘ μΈμ½λ©λ κ²½μ° categorical_features 맀κ°λ³μμ κ°μ΄ True λλ Falseμ¬μΌ ν©λκΉ?
λν λ€μ μ€λ₯κ° λ°μν©λλ€.
ValueError: 0 μν(λͺ¨μ=(0, 0))μ΄ μλ λ°°μ΄μ μ°Ύμμ§λ§ check_pairwise_arraysμλ μ΅μ 1μ΄ νμν©λλ€.
μ΄μ μλ λμΌν λ°μ΄ν°μμ μ±κ³΅μ μΌλ‘ μλνμ§λ§ μ΄μ λ μ΄λ¬ν μ€λ₯κ° λ°μν©λλ€. μ κ·Έλ΄ μ μμ΅λκΉ?
μλ νμΈμ @bendiste μ λλ€ .
Trueμ Falseλ₯Ό 1κ³Ό 0μΌλ‘ λνλ΄λ©΄ λμΌν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
μ΅μ λ
ΈνΈλΆ gower_function-v6.4.ipynbλ₯Ό μ¬μ© μ€μ
λκΉ?
https://sourceforge.net/projects/gower-distance-4python/files/
?
κΈ°μ¬ μμ±μ λ§μΉλ©° μ΄λ² λ¬μ scikit-learn λ§μ€ν°μμ λ΄ κ΅¬νμ μΉμΈνλλ‘ μμ²ν λ³κ²½ μ¬νμ μ μ©ν μ μκΈ°λ₯Ό λ°λλλ€.
μλ
νμΈμ @marcelobeckmannλ , λ΅λ³ν΄μ£Όμ
μ κ°μ¬ν©λλ€. κ·Έλ¦¬κ³ λ€, μλ €μ£Όμ μ΅μ λ²μ μ μ¬μ©νκ³ μμ΅λλ€. λ€μ λ€μ΄λ‘λνμ λ μ±κ³΅μ μΌλ‘ μλνμ΅λλ€. μ λ κΈ°κ³ νμ΅μ μ΄λ³΄μμ΄κΈ° λλ¬Έμ λͺ κ°μ§ μ§λ¬Έμ νκ³ μΆμ΅λλ€.
1- KPCAλ₯Ό μ¬μ©νμ¬ κ³μΈ΅μ ν΄λ¬μ€ν°λ§ μκ³ λ¦¬μ¦μ λν μ
λ ₯μΌλ‘ μ°¨μμ μ€μΌ μ μμ΅λκΉ?
2- μλλ©΄ κ³μΈ΅μ ν΄λ¬μ€ν°λ§μ λν μ
λ ₯μΌλ‘ μ°¨μμ΄ λμ μ 체 λ°μ΄ν° μΈνΈλ₯Ό μ¬μ©ν΄μΌ ν©λκΉ?
μλ
νμΈμ @marcelobeckmann ,
ꡬνν΄ μ£Όμ
μ κ°μ¬ν©λλ€!
gower_function-v6.4 λ²μ μ μλνμ΅λλ€.
λ²μ£Όν μ΄μ μ§μ νλ μ§μ νμ§ μλ λ¨μ ν
μ€νΈμ 거리λ λμΌνλ€λ κ²μ μ μ μμ΅λλ€. λλ λν κ²°κ³Όμ μν₯μ λ―ΈμΉμ§ μλ λ΄ μμ μ λ°μ΄ν°λ‘ μλνμ΅λλ€.
μ΄ μ¬λ°λ₯Έμ§?
κ°μ¬ν©λλ€!
μλ νμΈμ @annelaura ,
λ΅λ³μ΄ λ¦μ΄ μ£μ‘ν©λλ€. λ€ λ§μ΅λλ€. ν΄λΉ ν μ€νΈλ categorical_features=[0, 1] 맀κ°λ³μκ° κ²°κ³Όμ μν₯μ λ―ΈμΉμ§ μλμ§ νμΈνκΈ° μν κ²μ΄μμ΅λλ€. μ«μκ° μλ μ΄λ κ°μ²΄λ‘ μλ³ν μ μλ κ²½μ°μ λλ€. μ λ ₯ λ°μ΄ν°κ° λμΌνλ―λ‘ κ²°κ³Όκ° λμΌν΄μΌ ν©λλ€.
λͺ κ°μ§ λ Όλ¬Έμ λ§μΉ ν scikit master λΈλμΉμ λν ꡬνμ λ§μΉ¨λ΄ μ μνκΈ° μν΄ λ€μ μΌν©λλ€! :)
@marcelobeckmann μ΄μ κ΄ν μμμ΄ μμ΅λκΉ? :)
μλ Alex, λλ ν 리νμ€νΈμμ κ²ν μλ€μ΄ μ§κΈκΉμ§ μμ²ν λͺ¨λ μμ μ μλ£νκ³ CIλ λ Ήμμ λλ€. λν 리뷰μ΄κ° λ§μ‘±νλμ§ νμΈνκΈ° μν΄ νμ 보λμ΅λλ€. κ·Έλ¬λ©΄ μ΄ ν 리νμ€νΈλ₯Ό λ«κ³ νΈμνμ¬ λ¦΄λ¦¬μ€ν μ μμ΅λλ€.
μ λ°μ΄νΈκ° μμ΅λκΉ? @marcelobeckmann
κ²ν ν μμ μ μ§νν©λλ€.
PRμ΄ μΉμΈλμμ΅λκΉ? @marcelobeckmann
μμ§, μ΅κ·Ό μ½λ κ²ν λ₯Ό κ±°μ³ μμ μ΄ μ§ν μ€μ λλ€.
νμν΄μ μμ½λ€μ.
κΈ°λ₯λ§ μ΄λκ°μμ μ¬μ©ν μ μμ΅λκΉ? νΌμ μ¬μ©ν μ μλλ‘ (μ°κ΅¬ λͺ©μ μΌλ‘)
κ°μ¬ ν΄μ
μ΄ PRμμ μ΄ κΈ°λ₯μ μ΅μ 컀λ°μ μνν μ μμ΅λλ€.
https://github.com/scikit-learn/scikit-learn/pull/9555
λλ κ·Έκ²μ λ‘컬μμ μλμν€λ λ° μ±κ³΅νλ€. κ°μ¬ ν΄μ!
μ΄ ν°μΌμ λΉ λ₯΄κ² +1νμΈμ! λͺ¨λ μμ μ κ°μ¬λ립λλ€.
μΆ©λ. μ΄κ²μ νλ₯ν μΆκ° μ¬νμ΄ λ κ²μ λλ€. λΉκ΅μ κ°λ¨ν κ³μ°μΌλ‘ sklearnμΌλ‘ λ§λλ λ° 4λ μ΄ κ±Έλ Έλ€λ κ²μ΄ λ―ΏκΈ°μ§ μμ΅λλ€!!
λλ λ€μκ³Ό κ°μ΄ λ§ν μ μμ΅λλ€.
μλ°μ μΈ λ
Έλ ₯!
λλ λ€μκ³Ό κ°μ΄ λ§ν μ μμ΅λλ€. 4λ λμ μμ λ΄μ¬λ₯Ό μν΄ νμ μ μΌλ‘ λκΈ° μκ² λ Έλ ₯ν΄ μ£Όμ μ κ°μ¬ν©λλ€!
λΉμ λ§μ΄ λ§μ, λ―Έμ. 무λ‘νκ² λ³΄μ΄λ €λ μλλ μλμμ΅λλ€. λ Έλ ₯μ κ°μ¬λ립λλ€. λλ μ΄κ²μ μ μ λμ λ‘컬μμ μ¬μ©ν΄ μμΌλ©° μΆκ°λλ κ²μ 보λ κ²μ΄ μ’μ κ²μ λλ€. νΌν© λ°μ΄ν° μ νμ λν΄ λ΄κ° μλ μ μΌν 거리 μΈ‘μ λ²μ λλ€.
μμ λ΄μ¬ λ
Έλ ₯μ μ μΈνκ³ ν΅μ¬ κ°λ°μκ° κ³ λ €νμ§ μμ
μ΄ κΈ΄κΈν μν©μμ μ€μ λ‘ νΌν© μ νμ μ²λ¦¬νλ λ°©λ²μ λν λ¬Έμ κ° μμ΅λλ€.
κ·Έλ¦¬κ³ νλ ¨ ν
μ€νΈ μ€μ μμ μ€μΌμΌλ§μ μννλ λ°©λ²μ λν΄ μ€λͺ
ν©λλ€.
sklearnμμ κΈ°λνκ² μ΅λλ€.
μ΄ μ€λ λμμ " μμ΄λμ΄λ₯Ό λΉλ Έλ€ "κ³ μ£Όμ₯νλ λκ΅°κ°κ° Gower 거리(κΈ°μ μ μΌλ‘ μ μ¬μ±)λ₯Ό κ³μ°νκΈ° μν΄ github μ ν¨ν€μ§λ₯Ό μΆμνμ΅λλ€. 거리μ μ μ¬μ±μ λν΄ λ§νμλ©΄ @marcelobeckmannμ μμμ λμΌν©λλ€. μ§κΈκΉμ§ μ½λλ§ νμ΄λ³΄μμ§λ§ λ€μκ³Ό κ°μ΅λλ€.
@marcelobeckmann μ λ ΈνΈλΆμμ:
# This is to normalize the numeric values between 0 and 1.
X_num = np.divide(X_num ,max_of_numeric,out=np.zeros_like(X_num), where=max_of_numeric!=0)
"λ§μ΄ν΄ μ"μμ:
# This is to normalize the numeric values between 0 and 1.
Z_num = np.divide(Z_num ,num_max,out=np.zeros_like(Z_num), where=num_max!=0)
μλ νμΈμ μ¬λ¬λΆ, μ΄κ²μ κ΄μ¬μ κ°μ Έ μ£Όμ μ κ°μ¬ν©λλ€.
λλ μ¬λλ€μ΄ μ½λλ₯Ό μ¬μ©νκ³ κ·Έκ²μ κ°μ νκΈ° μν΄ λ Έλ ₯νκ³ μλ€λ κ²μ κΈ°μκ² μκ°ν©λλ€. μ½κ°μ 곡λ‘κ° μΈμ λκΈ°λ νμ§λ§ κ·Έκ²μ΄ μ€ν μμ€μ λͺ©μ μ λλ€.
μ΄ PR #9555 κ° μΉμΈλλ€λ©΄ μ΄ μ½λκ° scikit-learnμ μΌλΆκ° λκΈ°λ₯Ό λ°λλλ€.
μΉμ νλ,
λ§λ₯΄μ λ‘ λ² ν¬λ§
κ·Έ κ³Όμ μμ νμ΄μ λΉλλ€!!
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ,
μ΄λ»κ²λ κΈ°μ¬νκΈ° μν΄ μλ³Έ λ¬Έμμ λ°λΌ Gower ν¨μλ₯Ό ꡬννκ³ pdist λͺ¨λμ νμν κ° μμ μ¬νμ ꡬννμ΅λλ€. pdistλ λ΄λΆμ μΌλ‘ νΌν© λ°μ΄ν°κ° μλ νλ ¬μ μ¬μ©νλ κ²½μ° μ€ν¨ν μ¬λ¬ μμΉ λ³νμ μννκΈ° λλ¬Έμ λλ€.
μ§κΈκΉμ§ μ΄κ²μΌλ‘ μ»μ κ²°κ³Όλ Rμ λ°μ΄μ§ ν¨μμμμ λμΌν©λλ€.
μμ€ μ½λλ λ€μ jupyter λ ΈνΈλΆμμ μ¬μ©ν μ μμ΅λλ€. https://sourceforge.net/projects/gower-distance-4python/files/
λ§μκ» μ¬μ©νμΈμ