使用相似矩阵的sklearn分层聚集聚类

石井

给定一个距离矩阵,各个教授之间具有相似性:

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

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

       data_matrix=[[0,0.8,0.9],[0.8,0,0.2],[0.9,0.2,0]]

我尝试检查是否可以使用sklearn.cluster AgglomerativeClustering来实现它,但它正在将所有3行视为3个单独的向量,而不是距离矩阵。可以使用this或scipy.cluster.hierarchy完成吗?

戴维·戴尔

是的,您可以使用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]:第一个教授去一个集群,第二个和第三个教授去另一个集群。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章