我正在尝试学习如何使用 scipy.cluster.hierarchy.inconsistent 。我从document和one知道第一列和第二列分别代表平均值和标准差;第三个是链接数,第四个是不一致系数
但是,我不明白的是:
例如,假设我们有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]
答案 0 :(得分:2)
首先你必须了解Z矩阵:
#refs
第四行的计算中包含3个链接:
[[ 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.]]
(1,1,0)的平均值是| 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 |
,标准差是R[3,0] = 0.66667
(由N-1归一化,而不是N)。不一致的值计算如下:
R[3,1] = 0.57735
- 计算中包含的所有链接到底意味着什么?
- scipy.hierarchy.cluster.inconsistent(Z, d = 2)真的吗?
醇>
对于集群C,集群C下方的所有链接(深度d)都被视为计算统计数据(mean和std)。在上面的例子中,d = 2表示我们查看创建x [11](深度1)的链接,以及x [8]和x [10](深度2)下面的链接。