scipy.cluster.hierarchy.

cut_tree#

scipy.cluster.hierarchy.cut_tree(Z, n_clusters=None, height=None)[源代码]#

给定一个链接矩阵 Z,返回切割树。

参数:
Zscipy.cluster.linkage 数组

链接矩阵。

n_clusters类数组,可选

切割点树中的聚类数量。

height类数组,可选

切割树的高度。仅适用于超度量树。

返回:
cutree数组

一个数组,指示每个聚合步骤中的组成员。也就是说,对于完整的切割树,在第一列中,每个数据点都在其自己的聚类中。在下一步中,两个节点被合并。最后,所有单例和非单例聚类都在一个组中。如果给定 n_clustersheight,则列对应于 n_clustersheight 的列。

示例

>>> from scipy import cluster
>>> import numpy as np
>>> from numpy.random import default_rng
>>> rng = default_rng()
>>> X = rng.random((50, 4))
>>> Z = cluster.hierarchy.ward(X)
>>> cutree = cluster.hierarchy.cut_tree(Z, n_clusters=[5, 10])
>>> cutree[:10]
array([[0, 0],
       [1, 1],
       [2, 2],
       [3, 3],
       [3, 4],
       [2, 2],
       [0, 0],
       [1, 5],
       [3, 6],
       [4, 7]])  # random