假设我们有如下的X矩阵:
[[9 0]
[1 4]
[2 3]
[8 5]]
然后,
from scipy.cluster.hierarchy import linkage
Z = linkage(X, method="ward")
print(Z)
返回矩阵如下:
[[ 1. 2. 1.41421356 2. ]
[ 0. 3. 5.09901951 2. ]
[ 4. 5. 10. 4. ]]
返回值的含义是什么?
答案 0 :(得分:4)
虽然这有been answered before,但这是一个“阅读文档”的答案。我认为稍微解释一下这些文档很有用。
从文档中我们读到:
返回(n-1)乘4矩阵Z.在第i次迭代中,聚类 将索引Z [i,0]和Z [i,1]组合以形成簇n + i。一个 索引小于n的簇对应于n个原始中的一个 观察结果。簇Z [i,0]和Z [i,1]之间的距离是 由Z [i,2]给出。第四个值Z [i,3]表示数量 在新形成的集群中的原始观察。
我认为令人困惑的部分是前n个星团是单身(“原始观察”)。所以Z中的第一个值实际上是第n + 1个聚类。它是第一个组合两个单身人士的集群。
所以在你的例子中,Z [0]是第4 + 1簇。我们有
Z[0] = [ 1. 2. 1.41421356 2. ]
前两个值告诉我们哪些簇用于创建簇Z [0]。它们是cluster_1,单例[1,4]和cluster_2,单例[2,3]。
第三个值给出了簇之间的距离。我们可以验证sqrt((2-1)^ 2 +(3-4)^ 2))= 1.41 ...
第四个值告诉我们群集Z [0]中有多少单身。
所以看看你的最后一个星团Z [2],我们看到它结合了Z中的第一个两个星团。它们中的每一个都包含两个独特的单体,所以Z [2,3] = 4。