2024-05-14 10:24:22 发布
网友
给出一个距离矩阵,不同教授之间的相似性:
prof1 prof2 prof3 prof1 0 0.8 0.9 prof2 0.8 0 0.2 prof3 0.9 0.2 0
我需要对这些数据执行分层聚类,其中上面的数据是二维矩阵的形式
我试着检查是否可以使用sklearn.cluster公司聚集聚类,但它将所有3行视为3个单独的向量,而不是一个距离矩阵。可以用这个或者scipy.cluster.hierarchy?在
是的,你可以用sklearn来完成。您需要设置:
sklearn
affinity='precomputed'
linkage='complete'
'average'
利用预先计算的亲和力,将输入矩阵解释为观测值之间的距离矩阵。以下代码
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]:第一个教授去一个集群,第二个和第三个教授去另一个集群。在
[1 0 0]
是的,你可以用
sklearn
来完成。您需要设置:affinity='precomputed'
,使用距离矩阵linkage='complete'
或'average'
,因为默认链接(Ward)只对坐标输入起作用。在利用预先计算的亲和力,将输入矩阵解释为观测值之间的距离矩阵。以下代码
将返回标签
[1 0 0]
:第一个教授去一个集群,第二个和第三个教授去另一个集群。在相关问题 更多 >
编程相关推荐