scipy.cluster.hierarchy.
to_tree#
- scipy.cluster.hierarchy.to_tree(Z, rd=False)[源代码]#
将联动矩阵转换成易于使用的树形对象。
返回对根
ClusterNode对象的引用(默认情况下)。每个
ClusterNode对象都有left、right、dist、id和count属性。left 和 right 属性指向用于生成该簇的 ClusterNode 对象。如果两者均为空,则ClusterNode对象是一个叶节点,它的计数必须为 1,并且它的距离没有意义,但被设置为 0。注意:提供此函数是为了方便库用户。ClusterNodes 不会用作本库中任何函数的输入。
- 参数:
- Zndarray
正确形式的联动矩阵(请参阅
linkage函数文档)。- rd布尔值,可选
当 False(默认值)时,返回到根
ClusterNode对象的引用。否则,返回一个元组(r, d)。r是对根节点的引用,而d是ClusterNode对象的列表——一个联动矩阵中每个原始条目加所有聚类步骤的条目。如果一个聚类 ID 小于联动矩阵描述的数据中的样本数量n,那么它就对应一个单对象聚类(叶节点)。请参阅linkage了解有关将聚类 ID 分配给聚类的更多信息。
- 返回:
- treeClusterNode 或元组 (ClusterNode, ClusterNode 列表)
如果
rd为 False,则为ClusterNode。如果rd为 True,则长度为2*n - 1的列表,其中n是样本数量。请参阅上面rd 的描述了解更详细的信息。
示例
>>> import numpy as np >>> from scipy.cluster import hierarchy >>> rng = np.random.default_rng() >>> x = rng.random((5, 2)) >>> Z = hierarchy.linkage(x) >>> hierarchy.to_tree(Z) <scipy.cluster.hierarchy.ClusterNode object at ... >>> rootnode, nodelist = hierarchy.to_tree(Z, rd=True) >>> rootnode <scipy.cluster.hierarchy.ClusterNode object at ... >>> len(nodelist) 9