【问题标题】:hierarchical clustering with single linkage in python dataframepython数据框中具有单链接的层次聚类
【发布时间】:2019-09-26 22:28:15
【问题描述】:

我有一个 pandas 数据框来进行层次聚类。

    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】:

    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)

    【讨论】:

      猜你喜欢
      • 2019-07-17
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 2011-02-28
      • 2013-09-06
      • 1970-01-01
      • 2021-07-21
      • 2012-10-10
      相关资源
      最近更新 更多