Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python数据框架中的单链接层次聚类_Python_Dataframe_Hierarchical Clustering - Fatal编程技术网

python数据框架中的单链接层次聚类

python数据框架中的单链接层次聚类,python,dataframe,hierarchical-clustering,Python,Dataframe,Hierarchical Clustering,我有一个数据框架来进行分层聚类 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) 在scipy.cluster.hierarchy.linkage中使用的默认距离是

我有一个数据框架来进行分层聚类

    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)

scipy.cluster.hierarchy.linkage
中使用的默认距离是欧几里德距离,定义为
d(x,y)=\sqrt(\sum(x_i-y_i))
(您可以检查它)。我认为你感到困惑的原因是因为你在取平均值(并计算均方根误差)

所以在你的例子中
d(A,B)=\sqrt(3)=1.73

然后,由于链接是单链接,因此(A,B)和C之间的距离是d(A,C)和d(B,C)之间的最小距离,即
d(B,C)=\sqrt(12)