GH.*_*iou 2 python hierarchy scipy
我正在尝试学习如何使用scipy.cluster.hierarchy.inconsistant。我从文档和这个中知道第一列和第二列分别代表平均值和标准差;第三个是链接数量,第四个是不一致性系数。
然而,我不明白的是:
例如,假设 X 矩阵如下:
[[2], [8], [0], [4], [1], [9], [9], [0]]
Run Code Online (Sandbox Code Playgroud)
然后,通过以下方式获取 Z 值
Z = linkage(X, 'single')
Run Code Online (Sandbox Code Playgroud)
并且,我们得到
[[ 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.]]
Run Code Online (Sandbox Code Playgroud)
最后,得到不一致的情况
inconsistent(Z)
Run Code Online (Sandbox Code Playgroud)
输出是
[[ 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]]
Run Code Online (Sandbox Code Playgroud)
对于第四行,使用哪三个链接计算均值和标准差才能准确得到0.66667和0.57735的值?
[ 0.66667 0.57735 3. 0.57735]
Run Code Online (Sandbox Code Playgroud)
小智 6
首先你必须了解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.]]
Run Code Online (Sandbox Code Playgroud)
第四行的计算包含3个环节:
| 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 |
Run Code Online (Sandbox Code Playgroud)
(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
Run Code Online (Sandbox Code Playgroud)
- 计算中包含的所有链接的真正含义是什么?
- scipy.hierarchy.cluster.inconfirm(Z, d=2) 的 d 参数到底有什么作用?
对于聚类 C,聚类 C 下面直至深度 d 的所有链接都被视为计算统计数据(均值和标准差)。在上面的示例中,d=2 意味着我们查看创建 x[11](深度 1)的链接,以及 x[8] 和 x[10](深度 2)下面的链接。
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |