scipy.cluster.hierarchy.
to_tree#
- scipy.cluster.hierarchy.to_tree(Z, rd=False)[源代码]#
将连接矩阵转换为易于使用的树对象。
返回(默认情况下)对根
ClusterNode
对象的引用。每个
ClusterNode
对象都有一个left
、right
、dist
、id
和count
属性。left 和 right 属性指向合并生成该聚类的 ClusterNode 对象。如果两者都为 None,则ClusterNode
对象是一个叶节点,其计数必须为 1,并且其距离是无意义的,但设置为 0。注意:提供此函数是为了方便库用户。ClusterNode 不用作此库中任何函数的输入。
- 参数:
- Zndarray
格式正确的连接矩阵(请参阅
linkage
函数文档)。- rdbool,可选
当为 False(默认值)时,返回对根
ClusterNode
对象的引用。否则,返回一个元组(r, d)
。r
是对根节点的引用,而d
是一个ClusterNode
对象列表 - 连接矩阵中每个原始条目一个,以及所有聚类步骤的条目。如果聚类 id 小于连接矩阵描述的数据中样本数n
,则它对应于一个单例聚类(叶节点)。有关将聚类 ID 分配给聚类的更多信息,请参阅linkage
。
- 返回:
- 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