scipy.cluster.hierarchy.linkage 的 return 值是什么意思?
what is the meaning of the return values of the scipy.cluster.hierarchy.linkage?
假设我们有如下的 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. ]]
返回值的含义是什么?
虽然这有 been answered before,但这是一个 "read the docs" 的答案。我认为稍微解释一下文档很有用。
从文档中,我们读到:
An (n−1) by 4 matrix Z is returned. At the i-th iteration, clusters
with indices Z[i, 0] and Z[i, 1] are combined to form cluster n + i. A
cluster with an index less than n corresponds to one of the n original
observations. The distance between clusters Z[i, 0] and Z[i, 1] is
given by Z[i, 2]. The fourth value Z[i, 3] represents the number of
original observations in the newly formed cluster.
我认为令人困惑的部分是前 n 个集群是单例 ("original observations")。所以 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。
假设我们有如下的 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. ]]
返回值的含义是什么?
虽然这有 been answered before,但这是一个 "read the docs" 的答案。我认为稍微解释一下文档很有用。
从文档中,我们读到:
An (n−1) by 4 matrix Z is returned. At the i-th iteration, clusters with indices Z[i, 0] and Z[i, 1] are combined to form cluster n + i. A cluster with an index less than n corresponds to one of the n original observations. The distance between clusters Z[i, 0] and Z[i, 1] is given by Z[i, 2]. The fourth value Z[i, 3] represents the number of original observations in the newly formed cluster.
我认为令人困惑的部分是前 n 个集群是单例 ("original observations")。所以 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。