Python 层次聚类不一致:不一致的输出是什么意思
Python Hierarchical Clustering Inconsistency: What do the outputs for the inconsistent mean
我正在努力学习如何使用 scipy.cluster.hierarchy.inconsistent。我从 document and this one 知道第一列和第二列分别代表均值和标准差;第三个是链接数,第四个是不一致系数。
但是,我不明白的是:
- 计算中包含的所有链接到底是什么意思?
- scipy.hierarchy.cluster.inconsistent(Z, d=2)的d参数到底有什么作用?
例如,假设我们有如下的 X 矩阵:
[[2], [8], [0], [4], [1], [9], [9], [0]]
然后,通过
得到Z值
Z = linkage(X, 'single')
然后,我们得到
[[ 2. 7. 0. 2.]
[ 5. 6. 0. 2.]
[ 0. 4. 1. 2.]
[ 8. 10. 1. 4.]
[ 1. 9. 1. 3.]
[ 3. 11. 2. 5.]
[ 12. 13. 4. 8.]]
最后,得到不一致
inconsistent(Z)
输出为
[[ 0. 0. 1. 0. ]
[ 0. 0. 1. 0. ]
[ 1. 0. 1. 0. ]
[ 0.66667 0.57735 3. 0.57735]
[ 0.5 0.70711 2. 0.70711]
[ 1.5 0.70711 2. 0.70711]
[ 2.33333 1.52753 3. 1.09109]]
对于第四行,分别用哪三个环节计算均值和标准差得到0.66667和0.57735的值到底是什么?
[ 0.66667 0.57735 3. 0.57735]
首先你要了解Z矩阵:
[[ 2. 7. 0. 2.] <== x[2] is linked with x[7], forming cluster x[8] = {x[2], x[7]}
[ 5. 6. 0. 2.]
[ 0. 4. 1. 2.] <== x[10] = {x[0], x[4]}
[ 8. 10. 1. 4.] <== x[11] = {x[8], x[10]} = {x[2], x[7], x[0], x[4]}
[ 1. 9. 1. 3.]
[ 3. 11. 2. 5.]
[ 12. 13. 4. 8.]]
第四行的计算中包含了3个link:
| Link | Height/Distance |
| x[2] - x[7] | Z[0,2] = 0 |
| x[0] - x[4] | Z[2,2] = 1 |
| x[8] - x[10] | Z[3,2] = 1 |
(1,1,0)的平均值为R[3,0] = 0.66667
,标准差为R[3,1] = 0.57735
(归一化为N-1,而非N)。不一致的值计算为:
Z[i,2] - R[i,0] 1 - 0.6667
R[i,3] = --------------- = ---------- = 0.57735
R[i,1] 0.57735
- what does the all the links included in the calculation really mean?
- what does the d parameter of scipy.hierarchy.cluster.inconsistent(Z,
d=2) really do?
对于集群 C,集群 C 下面的所有 link,直到深度 d,都被视为计算统计数据(均值和标准差)。在上面的示例中,d=2 表示我们查看创建 x[11](深度 1)的 link,以及 x[8] 和 x[10](深度 2)下方的 links ).
我正在努力学习如何使用 scipy.cluster.hierarchy.inconsistent。我从 document and this one 知道第一列和第二列分别代表均值和标准差;第三个是链接数,第四个是不一致系数。
但是,我不明白的是:
- 计算中包含的所有链接到底是什么意思?
- scipy.hierarchy.cluster.inconsistent(Z, d=2)的d参数到底有什么作用?
例如,假设我们有如下的 X 矩阵:
[[2], [8], [0], [4], [1], [9], [9], [0]]
然后,通过
得到Z值Z = linkage(X, 'single')
然后,我们得到
[[ 2. 7. 0. 2.]
[ 5. 6. 0. 2.]
[ 0. 4. 1. 2.]
[ 8. 10. 1. 4.]
[ 1. 9. 1. 3.]
[ 3. 11. 2. 5.]
[ 12. 13. 4. 8.]]
最后,得到不一致
inconsistent(Z)
输出为
[[ 0. 0. 1. 0. ]
[ 0. 0. 1. 0. ]
[ 1. 0. 1. 0. ]
[ 0.66667 0.57735 3. 0.57735]
[ 0.5 0.70711 2. 0.70711]
[ 1.5 0.70711 2. 0.70711]
[ 2.33333 1.52753 3. 1.09109]]
对于第四行,分别用哪三个环节计算均值和标准差得到0.66667和0.57735的值到底是什么?
[ 0.66667 0.57735 3. 0.57735]
首先你要了解Z矩阵:
[[ 2. 7. 0. 2.] <== x[2] is linked with x[7], forming cluster x[8] = {x[2], x[7]}
[ 5. 6. 0. 2.]
[ 0. 4. 1. 2.] <== x[10] = {x[0], x[4]}
[ 8. 10. 1. 4.] <== x[11] = {x[8], x[10]} = {x[2], x[7], x[0], x[4]}
[ 1. 9. 1. 3.]
[ 3. 11. 2. 5.]
[ 12. 13. 4. 8.]]
第四行的计算中包含了3个link:
| Link | Height/Distance |
| x[2] - x[7] | Z[0,2] = 0 |
| x[0] - x[4] | Z[2,2] = 1 |
| x[8] - x[10] | Z[3,2] = 1 |
(1,1,0)的平均值为R[3,0] = 0.66667
,标准差为R[3,1] = 0.57735
(归一化为N-1,而非N)。不一致的值计算为:
Z[i,2] - R[i,0] 1 - 0.6667
R[i,3] = --------------- = ---------- = 0.57735
R[i,1] 0.57735
- what does the all the links included in the calculation really mean?
- what does the d parameter of scipy.hierarchy.cluster.inconsistent(Z, d=2) really do?
对于集群 C,集群 C 下面的所有 link,直到深度 d,都被视为计算统计数据(均值和标准差)。在上面的示例中,d=2 表示我们查看创建 x[11](深度 1)的 link,以及 x[8] 和 x[10](深度 2)下方的 links ).