10
我正在用相關距離度量(即1-皮爾森相關)對2維矩陣進行層次聚類。我的代碼如下(該數據在一個名爲「數據」變量):Python中的層次聚類問題
from hcluster import *
Y = pdist(data, 'correlation')
cluster_type = 'average'
Z = linkage(Y, cluster_type)
dendrogram(Z)
我得到的錯誤是:
ValueError: Linkage 'Z' contains negative distances.
是什麼原因導致這個錯誤?矩陣「數據」,我用很簡單:
[[ 156.651968 2345.168618]
[ 158.089968 2032.840106]
[ 207.996413 2786.779081]
[ 151.885804 2286.70533 ]
[ 154.33665 1967.74431 ]
[ 150.060182 1931.991169]
[ 133.800787 1978.539644]
[ 112.743217 1478.903191]
[ 125.388905 1422.3247 ]]
我不知道怎麼走1個時pdist所能產生負數 - 皮爾森相關。對此有何想法?
謝謝。
我嘗試以下但它沒有工作: #使用「相關」 Y =剪輯從pdist計算Y(Y,0,1) ,我得到的矩陣I上面表明的聚類是非常奇怪的。任何想法可能發生什麼?這隻會發生在'關聯'作爲pdist的參數。 – user248237dfsf 2010-05-31 03:42:25
您可以嘗試使用類似'Y [abs(Y)<3e-16] = 0.0'的東西,因爲您也有一些非常小的正距離。有時像這樣的數字可以真正拋棄。坦率地說,我沒有太多的使用聚類模塊的經驗。它可能與使用'平均'的集羣類型可能有關嗎? – 2010-05-31 04:20:48