2013-08-07 99 views
0

我對Python中的Scipy隱藏有點困惑。這是我的源代碼:用Python中的Scipy進行羣集? (分層聚類)

import scipy.spatial.distance as dist 
import numpy, scipy 

dataMatrix = numpy.array(matrix) 
distMatrix = dist.pdist(dataMatrix, 'euclidean') 
distSquareMatrix = dist.squareform(distMatrix) 

Y = scipy.cluster.hierarchy.linkage(distSquareMatrix, method='complete') 

我必須使用「distMatrix」或squareform「distSquareMatrix」作爲聚類的輸入?因爲我在其他帖子中看到了這兩種方法。但是輸出是不同的。現在我不確定我必須選擇什麼。

回答

4

您需要通過濃縮形式的距離矩陣,而不用squareform進行轉換。如果想要更簡單地將距離矩陣作爲二維數組操作,則squareform函數很有用。 scipy.cluster.hierarchy函數使用壓縮格式,目的是在內存中節省大約兩倍。

我希望這會有所幫助。

+0

感謝您的回答!這意味着我必須在聯動功能中使用'distMatrix'... – Joko