当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy hierarchy.leaders用法及代码示例


本文简要介绍 python 语言中 scipy.cluster.hierarchy.leaders 的用法。

用法:

scipy.cluster.hierarchy.leaders(Z, T)#

返回层次聚类中的根节点。

返回与平面集群分配向量 T 定义的切割相对应的层次聚类中的根节点。有关 T 格式的更多信息,请参见 fcluster 函数。

对于n-sized平面簇分配向量T中表示的 平面簇中的每个平面簇 ,此函数在链接树Z中找到最低的簇节点 ,使得:

  • leaf descendants belong only to flat cluster j (i.e., T[p]==j for all in , where is the set of leaf ids of descendant leaf nodes with cluster node )

  • there does not exist a leaf that is not a descendant with that also belongs to cluster (i.e., T[q]!=j for all not in ). If this condition is violated, T is not a valid cluster assignment vector, and an exception will be thrown.

参数

Z ndarray

层次聚类编码为矩阵。有关详细信息,请参阅 linkage

T ndarray

平面集群分配向量。

返回

L ndarray

领导者链接节点 id 存储为 k-element 一维数组,其中 k 是在 T 中找到的平面集群的数量。

L[j]=i是链接集群节点id,它是id为M[j]的扁平集群的领导者。如果 i < ni 对应于原始观察,否则对应于非单例集群。

M ndarray

领导者链接节点 id 存储为 k-element 一维数组,其中 k 是在 T 中找到的平面集群的数量。这允许平面集群 ID 集是任意的 k 整数集。

例如:如果 L[3]=2M[3]=8 ,则 id 为 8 的扁平集群的领导者是链接节点 2。

例子

>>> from scipy.cluster.hierarchy import ward, fcluster, leaders
>>> from scipy.spatial.distance import pdist

给定一个链接矩阵 Z - 在将聚类方法应用于数据集 X 后获得 - 和一个平面聚类分配数组 T

>>> 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))
>>> 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.        ]])
>>> T = fcluster(Z, 3, criterion='distance')
>>> T
array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4], dtype=int32)

scipy.cluster.hierarchy.leaders 返回树状图中作为每个平面簇的领导者的节点的索引:

>>> L, M = leaders(Z, T)
>>> L
array([16, 17, 18, 19], dtype=int32)

(请记住,索引 0-11 指向 X 中的 12 个数据点,而索引 12-22 指向 Z 中的 11 行)

scipy.cluster.hierarchy.leaders 还返回 T 中平坦簇的索引:

>>> M
array([1, 2, 3, 4], dtype=int32)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.cluster.hierarchy.leaders。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。