本文简要介绍 python 语言中 scipy.cluster.hierarchy.cophenet
的用法。
用法:
scipy.cluster.hierarchy.cophenet(Z, Y=None)#
计算由链接
Z
定义的层次聚类中每个观察值之间的共同距离。假设
p
和q
分别是不相交集群s
和t
中的原始观测值,并且s
和t
由直接父集群u
加入。观测值i
和j
之间的共同距离就是聚类s
和t
之间的距离。- Z: ndarray
编码为数组的层次聚类(参见
linkage
函数)。- Y: ndarray(可选)
计算共生相关系数
c
由链接矩阵定义的层次聚类Z的一组 中的观察 维度。Y是压缩距离矩阵,其中Z生成了。
- c: ndarray
cophentic 相关距离(如果通过
Y
)。- d: ndarray
压缩形式的共生距离矩阵。 th 条目是原始观测值 和 之间的共同距离。
参数 ::
返回 ::
例子:
>>> from scipy.cluster.hierarchy import single, cophenet >>> from scipy.spatial.distance import pdist, squareform
给定一个数据集
X
和一个链接矩阵Z
,X
的两个点之间的共同距离是每个点最大的两个不同簇之间的距离:>>> 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]]
X
对应这个数据集x x x x x x x x x x x x
>>> Z = single(pdist(X)) >>> Z array([[ 0., 1., 1., 2.], [ 2., 12., 1., 3.], [ 3., 4., 1., 2.], [ 5., 14., 1., 3.], [ 6., 7., 1., 2.], [ 8., 16., 1., 3.], [ 9., 10., 1., 2.], [11., 18., 1., 3.], [13., 15., 2., 6.], [17., 20., 2., 9.], [19., 21., 2., 12.]]) >>> cophenet(Z) array([1., 1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 1., 2., 2., 2., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 1., 2., 2., 2., 1., 2., 2., 2., 2., 2., 2., 1., 1., 1.])
scipy.cluster.hierarchy.cophenet
方法的输出以压缩形式表示。我们可以使用scipy.spatial.distance.squareform
将输出视为规则矩阵(其中每个元素ij
表示X
中每个点对i
、j
之间的共表距离):>>> squareform(cophenet(Z)) array([[0., 1., 1., 2., 2., 2., 2., 2., 2., 2., 2., 2.], [1., 0., 1., 2., 2., 2., 2., 2., 2., 2., 2., 2.], [1., 1., 0., 2., 2., 2., 2., 2., 2., 2., 2., 2.], [2., 2., 2., 0., 1., 1., 2., 2., 2., 2., 2., 2.], [2., 2., 2., 1., 0., 1., 2., 2., 2., 2., 2., 2.], [2., 2., 2., 1., 1., 0., 2., 2., 2., 2., 2., 2.], [2., 2., 2., 2., 2., 2., 0., 1., 1., 2., 2., 2.], [2., 2., 2., 2., 2., 2., 1., 0., 1., 2., 2., 2.], [2., 2., 2., 2., 2., 2., 1., 1., 0., 2., 2., 2.], [2., 2., 2., 2., 2., 2., 2., 2., 2., 0., 1., 1.], [2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 0., 1.], [2., 2., 2., 2., 2., 2., 2., 2., 2., 1., 1., 0.]])
在此示例中,
X
上非常接近(即在同一个角落)的点之间的共同距离为 1。对于其他点对为 2,因为这些点将位于不同角落的集群中 - 因此,这些簇之间的距离会更大。
相关用法
- Python SciPy hierarchy.correspond用法及代码示例
- Python SciPy hierarchy.complete用法及代码示例
- Python SciPy hierarchy.cut_tree用法及代码示例
- Python SciPy hierarchy.centroid用法及代码示例
- Python SciPy hierarchy.ward用法及代码示例
- Python SciPy hierarchy.maxRstat用法及代码示例
- Python SciPy hierarchy.set_link_color_palette用法及代码示例
- Python SciPy hierarchy.fclusterdata用法及代码示例
- Python SciPy hierarchy.median用法及代码示例
- Python SciPy hierarchy.DisjointSet用法及代码示例
- Python SciPy hierarchy.is_isomorphic用法及代码示例
- Python SciPy hierarchy.optimal_leaf_ordering用法及代码示例
- Python SciPy hierarchy.maxinconsts用法及代码示例
- Python SciPy hierarchy.fcluster用法及代码示例
- Python SciPy hierarchy.to_tree用法及代码示例
- Python SciPy hierarchy.average用法及代码示例
- Python SciPy hierarchy.dendrogram用法及代码示例
- Python SciPy hierarchy.num_obs_linkage用法及代码示例
- Python SciPy hierarchy.inconsistent用法及代码示例
- Python SciPy hierarchy.linkage用法及代码示例
- Python SciPy hierarchy.maxdists用法及代码示例
- Python SciPy hierarchy.is_valid_im用法及代码示例
- Python SciPy hierarchy.single用法及代码示例
- Python SciPy hierarchy.is_monotonic用法及代码示例
- Python SciPy hierarchy.leaves_list用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.cluster.hierarchy.cophenet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。