Python数据框中具有单个链接的分层聚类

问题描述 投票:0回答:1

我有一个熊猫数据框来进行分层聚类。

    A   B   C
A   0   1   3
B   1   0   2
C   3   2   0

我尝试的代码:

z=linkage(df,'single')
dn = dendrogram(z,labels=index)

然后我得到一个奇怪的结果:A&B作为距离为1.73的群集(正确应为1),然后A&B&C作为距离为3.46的群集(正确应为2)。

python dataframe hierarchical-clustering
1个回答
0
投票
scipy.cluster.hierarchy.linkage中使用的默认距离是欧几里德距离,定义为d(x,y) = \sqrt(\sum(x_i-y_i))(您可以将其检查为here)。我认为您感到困惑的原因是因为您正在取平均值(并计算均方根误差)。

所以您的情况是d(A,B) = \sqrt(3) = 1.73

然后,由于您的连锁是single,因此(A,B)与C之间的距离是d(A,C)与d(B,C)之间的最小值,即d(B,C) = \sqrt(12)

© www.soinside.com 2019 - 2024. All rights reserved.