用法:
scipy.cluster.hierarchy.is_valid_im(R, warning=False, throw=False, name=None)
如果传递的不一致矩阵有效,则返回True。
它一定是
由4个双打阵列组成。标准差
R[:,1]
必须为非负数。链接数R[:,2]
必须为正且不大于。
参数:
- R:ndarray
用于检查有效性的不一致矩阵。
- warning:bool, 可选参数
为True时,如果传递的链接矩阵无效,则发出Python警告。
- throw:bool, 可选参数
为True时,如果传递的链接矩阵无效,则抛出Python异常。
- name:str, 可选参数
此字符串引用无效链接矩阵的变量名称。
返回值:
- b:布尔
如果不一致矩阵有效,则为True。
例子:
>>> from scipy.cluster.hierarchy import ward, inconsistent, is_valid_im >>> from scipy.spatial.distance import pdist
给定数据集
X
,我们可以应用聚类方法获得链接矩阵Z
。scipy.cluster.hierarchy.inconsistent
也可以用来获取不一致矩阵R
与该聚类过程相关联:>>> X = [[0, 0], [0, 1], [1, 0], ... [0, 4], [0, 3], [1, 4], ... [4, 0], [3, 0], [4, 1], ... [4, 4], [3, 4], [4, 3]]
>>> Z = ward(pdist(X)) >>> R = inconsistent(Z) >>> Z array([[ 0. , 1. , 1. , 2. ], [ 3. , 4. , 1. , 2. ], [ 6. , 7. , 1. , 2. ], [ 9. , 10. , 1. , 2. ], [ 2. , 12. , 1.29099445, 3. ], [ 5. , 13. , 1.29099445, 3. ], [ 8. , 14. , 1.29099445, 3. ], [11. , 15. , 1.29099445, 3. ], [16. , 17. , 5.77350269, 6. ], [18. , 19. , 5.77350269, 6. ], [20. , 21. , 8.16496581, 12. ]]) >>> R array([[1. , 0. , 1. , 0. ], [1. , 0. , 1. , 0. ], [1. , 0. , 1. , 0. ], [1. , 0. , 1. , 0. ], [1.14549722, 0.20576415, 2. , 0.70710678], [1.14549722, 0.20576415, 2. , 0.70710678], [1.14549722, 0.20576415, 2. , 0.70710678], [1.14549722, 0.20576415, 2. , 0.70710678], [2.78516386, 2.58797734, 3. , 1.15470054], [2.78516386, 2.58797734, 3. , 1.15470054], [6.57065706, 1.38071187, 3. , 1.15470054]])
现在我们可以使用
scipy.cluster.hierarchy.is_valid_im
验证R
是正确的:>>> is_valid_im(R) True
但是,如果
R
构造错误(例如,标准偏差之一设置为负值),则检查将失败:>>> R[-1,1] = R[-1,1] * -1 >>> is_valid_im(R) False
源码:
scipy.cluster.hierarchy.is_valid_im的API实现见:[源代码]
相关用法
注:本文由纯净天空筛选整理自 scipy.cluster.hierarchy.is_valid_im。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。