scipy.cluster.hierarchy.
to_tree#
- scipy.cluster.hierarchy.to_tree(Z, rd=False)[source]#
將連結矩陣轉換為易於使用的樹狀物件。
預設情況下,會傳回對根
ClusterNode
物件的參考。每個
ClusterNode
物件都有left
、right
、dist
、id
和count
屬性。 left 和 right 屬性指向組合以產生叢集的 ClusterNode 物件。如果兩者皆為 None,則ClusterNode
物件是葉節點,其 count 必須為 1,且其距離沒有意義,但會設定為 0。注意:此函式是為了方便程式庫使用者而提供的。ClusterNode 不會作為此程式庫中任何函式的輸入。
- 參數:
- Zndarray
正確格式的連結矩陣(請參閱
linkage
函式文件)。- rdbool,選用
當 False(預設)時,會傳回對根
ClusterNode
物件的參考。否則,會傳回 tuple(r, d)
。r
是對根節點的參考,而d
是ClusterNode
物件的列表 - 連結矩陣中每個原始條目加上所有分群步驟的條目各一個。如果叢集 ID 小於連結矩陣描述的資料中樣本數n
,則它對應於單例叢集(葉節點)。有關叢集 ID 分配給叢集的更多資訊,請參閱linkage
。
- 回傳值:
- treeClusterNode 或 tuple (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