scipy.cluster.hierarchy.

砍树#

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

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

参数:
Zscipy.cluster.linkage 数组

连接矩阵。

n_clusters类似数组, 可选

在切割点处树中的簇的数量。

高度类似数组, 可选

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

返回:
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