scipy.cluster.hierarchy.

to_tree#

scipy.cluster.hierarchy.to_tree(Z, rd=False)[source]#

將連結矩陣轉換為易於使用的樹狀物件。

預設情況下,會傳回對根 ClusterNode 物件的參考。

每個 ClusterNode 物件都有 leftrightdistidcount 屬性。 left 和 right 屬性指向組合以產生叢集的 ClusterNode 物件。如果兩者皆為 None,則 ClusterNode 物件是葉節點,其 count 必須為 1,且其距離沒有意義,但會設定為 0。

注意:此函式是為了方便程式庫使用者而提供的。ClusterNode 不會作為此程式庫中任何函式的輸入。

參數:
Zndarray

正確格式的連結矩陣(請參閱 linkage 函式文件)。

rdbool,選用

當 False(預設)時,會傳回對根 ClusterNode 物件的參考。否則,會傳回 tuple (r, d)r 是對根節點的參考,而 dClusterNode 物件的列表 - 連結矩陣中每個原始條目加上所有分群步驟的條目各一個。如果叢集 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