如何在scipy
/numpy
中对相关性矩阵进行层次聚类?我有一个100行9列的矩阵,我想根据9个条件下每个条目的相关性进行层次聚类。我希望使用1-皮尔逊相关系数作为聚类的距离。假设我有一个numpy
数组X
,它包含100 x 9的矩阵,我该如何操作?
我尝试使用hcluster,基于这个例子:
Y=pdist(X, 'seuclidean')Z=linkage(Y, 'single')dendrogram(Z, color_threshold=0)
然而,pdist
并不是我想要的,因为那是欧几里得距离。有什么建议吗?
谢谢。
回答:
只需将度量改为correlation
,这样第一行就变成:
Y=pdist(X, 'correlation')
然而,我认为代码可以简化为:
Z=linkage(X, 'single', 'correlation')dendrogram(Z, color_threshold=0)
因为linkage
会为你处理pdist
。