scipy.cluster.hierarchy.

from_mlab_linkage#

scipy.cluster.hierarchy.from_mlab_linkage(Z)[source]#

轉換 MATLAB(TM) 產生的連結矩陣為與此模組相容的新連結矩陣。

此轉換會進行兩件事

  • 索引從 1..N 轉換為 0..(N-1) 形式,以及

  • 新增第四欄 Z[:,3],其中 Z[i,3] 代表非單例叢集 i 中原始觀測值(葉節點)的數量。

當從 MATLAB 產生的舊版資料檔案載入連結時,此函數非常有用。

參數:
Zndarray

MATLAB(TM) 產生的連結矩陣。

返回:
ZSndarray

scipy.cluster.hierarchy 相容的連結矩陣。

參見

linkage

以了解連結矩陣的描述。

to_mlab_linkage

從 SciPy 轉換為 MATLAB 格式。

範例

>>> import numpy as np
>>> from scipy.cluster.hierarchy import ward, from_mlab_linkage

給定 MATLAB 格式的連結矩陣 mZ,我們可以使用 scipy.cluster.hierarchy.from_mlab_linkage 將其匯入 SciPy 格式

>>> mZ = np.array([[1, 2, 1], [4, 5, 1], [7, 8, 1],
...                [10, 11, 1], [3, 13, 1.29099445],
...                [6, 14, 1.29099445],
...                [9, 15, 1.29099445],
...                [12, 16, 1.29099445],
...                [17, 18, 5.77350269],
...                [19, 20, 5.77350269],
...                [21, 22,  8.16496581]])
>>> Z = from_mlab_linkage(mZ)
>>> Z
array([[  0.        ,   1.        ,   1.        ,   2.        ],
       [  3.        ,   4.        ,   1.        ,   2.        ],
       [  6.        ,   7.        ,   1.        ,   2.        ],
       [  9.        ,  10.        ,   1.        ,   2.        ],
       [  2.        ,  12.        ,   1.29099445,   3.        ],
       [  5.        ,  13.        ,   1.29099445,   3.        ],
       [  8.        ,  14.        ,   1.29099445,   3.        ],
       [ 11.        ,  15.        ,   1.29099445,   3.        ],
       [ 16.        ,  17.        ,   5.77350269,   6.        ],
       [ 18.        ,  19.        ,   5.77350269,   6.        ],
       [ 20.        ,  21.        ,   8.16496581,  12.        ]])

如預期,返回的連結矩陣 Z 包含一個額外的欄位,用於計算每個叢集中原始樣本的數量。此外,所有叢集索引都減少了 1(MATLAB 格式使用 1 索引,而 SciPy 使用 0 索引)。