Duo*_*hia 4 python hierarchical-clustering scipy
假设我们有 X 矩阵如下:
[[9 0]
[1 4]
[2 3]
[8 5]]
Run Code Online (Sandbox Code Playgroud)
然后,
from scipy.cluster.hierarchy import linkage
Z = linkage(X, method="ward")
print(Z)
Run Code Online (Sandbox Code Playgroud)
返回矩阵如下:
[[ 1. 2. 1.41421356 2. ]
[ 0. 3. 5.09901951 2. ]
[ 4. 5. 10. 4. ]]
Run Code Online (Sandbox Code Playgroud)
返回值的含义是什么?
虽然这之前已经回答过,但这是一个“阅读文档”的答案。我认为解释一下文档很有用。
从文档中,我们读到:
返回一个 (n?1) x 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. ]
Run Code Online (Sandbox Code Playgroud)
前两个值告诉我们哪些集群用于创建集群 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。
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |