scipy.cluster.hierarchy.cophenet¶
- scipy.cluster.hierarchy.cophenet(Z, Y=None)[源代码]¶
计算由链接定义的层次聚类中的每个观察点之间的共生距离
Z
。假设
p
和q
是不相交群集中的原始观测s
和t
,分别和s
和t
由一个直接的父聚类加入u
。观测之间的共生距离i
和j
简单地说就是星系团之间的距离s
和t
。- 参数
- Zndarray
编码为数组的层次聚类(请参见
linkage
函数)。- Yndarray(可选)
计算共生相关系数
c
由链接矩阵定义的分层聚类的 Z 一组 \(n\) 中的观测值 \(m\) 尺寸标注。 Y 是凝聚的距离矩阵,从该距离矩阵 Z 都是生成的。
- 退货
- cndarray
同源相关距离(IF
Y
通过)。- dndarray
凝聚形式的共生距离矩阵。这个 \(ij\) 此条目是原始观测之间的共生距离 \(i\) 和 \(j\) 。
参见
linkage
有关链接矩阵是什么的说明,请参阅。
scipy.spatial.distance.squareform
将凝聚矩阵转化为平方矩阵。
示例
>>> 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
表示它们之间的共生距离i
,j
中的一对点X
):>>> 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
对于其他点对是2,因为这些点将位于不同角落的簇中-因此,这些簇之间的距离将更大。