基于相似矩阵的sklearn层次聚集聚类

2024-05-14 10:24:22 发布

您现在位置:Python中文网/ 问答频道 /正文

给出一个距离矩阵,不同教授之间的相似性:

              prof1     prof2     prof3
       prof1     0        0.8     0.9
       prof2     0.8      0       0.2
       prof3     0.9      0.2     0

我需要对这些数据执行分层聚类,其中上面的数据是二维矩阵的形式

^{pr2}$

我试着检查是否可以使用sklearn.cluster公司聚集聚类,但它将所有3行视为3个单独的向量,而不是一个距离矩阵。可以用这个或者scipy.cluster.hierarchy?在


Tags: 数据距离分层公司矩阵聚类sklearn相似性
1条回答
网友
1楼 · 发布于 2024-05-14 10:24:22

是的,你可以用sklearn来完成。您需要设置:

  • affinity='precomputed',使用距离矩阵
  • linkage='complete''average',因为默认链接(Ward)只对坐标输入起作用。在

利用预先计算的亲和力,将输入矩阵解释为观测值之间的距离矩阵。以下代码

from sklearn.cluster import AgglomerativeClustering
data_matrix = [[0,0.8,0.9],[0.8,0,0.2],[0.9,0.2,0]]
model = AgglomerativeClustering(affinity='precomputed', n_clusters=2, linkage='complete').fit(data_matrix)
print(model.labels_)

将返回标签[1 0 0]:第一个教授去一个集群,第二个和第三个教授去另一个集群。在

相关问题 更多 >

    热门问题