當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy hierarchy.maxdists用法及代碼示例

本文簡要介紹 python 語言中 scipy.cluster.hierarchy.maxdists 的用法。

用法:

scipy.cluster.hierarchy.maxdists(Z)#

返回任何非單例集群之間的最大距離。

參數

Z ndarray

層次聚類編碼為矩陣。有關詳細信息,請參閱linkage

返回

maxdists ndarray

一個 (n-1) 大小的 numpy 雙精度數組; MD[i] 表示以下任何集群(包括單例)之間的最大距離,包括索引為 i 的節點。更具體地說,MD[i] = Z[Q(i)-n, 2].max() 其中 Q(i) 是所有節點索引的集合,包括節點 i。

例子

>>> from scipy.cluster.hierarchy import median, maxdists
>>> from scipy.spatial.distance import pdist

給定鏈接矩陣 Zscipy.cluster.hierarchy.maxdists 計算生成的每個新簇(即鏈接矩陣的每一行)任何兩個子簇之間的最大距離是多少。

由於層次聚類的性質,在許多情況下,這將隻是合並形成當前子聚類的兩個子聚類之間的距離 - 即 Z[:,2]。

但是,對於諸如 scipy.cluster.hierarchy.median 聚類這樣的非單調聚類分配,情況並非總是如此:如果合並的兩個聚類之間的距離小於其子聚類之間的距離,則可能會形成聚類。

我們可以在一個例子中看到這一點:

>>> X = [[0, 0], [0, 1], [1, 0],
...      [0, 4], [0, 3], [1, 4],
...      [4, 0], [3, 0], [4, 1],
...      [4, 4], [3, 4], [4, 3]]
>>> Z = median(pdist(X))
>>> Z
array([[ 0.        ,  1.        ,  1.        ,  2.        ],
       [ 3.        ,  4.        ,  1.        ,  2.        ],
       [ 9.        , 10.        ,  1.        ,  2.        ],
       [ 6.        ,  7.        ,  1.        ,  2.        ],
       [ 2.        , 12.        ,  1.11803399,  3.        ],
       [ 5.        , 13.        ,  1.11803399,  3.        ],
       [ 8.        , 15.        ,  1.11803399,  3.        ],
       [11.        , 14.        ,  1.11803399,  3.        ],
       [18.        , 19.        ,  3.        ,  6.        ],
       [16.        , 17.        ,  3.5       ,  6.        ],
       [20.        , 21.        ,  3.25      , 12.        ]])
>>> maxdists(Z)
array([1.        , 1.        , 1.        , 1.        , 1.11803399,
       1.11803399, 1.11803399, 1.11803399, 3.        , 3.5       ,
       3.5       ])

請注意,雖然創建最後一個簇時合並的兩個簇之間的距離為 3.25,但有兩個子簇(簇 16 和 17)的距離更大 (3.5)。因此,在這種情況下,scipy.cluster.hierarchy.maxdists 返回 3.5。

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.cluster.hierarchy.maxdists。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。