sklearn.manifold.smacof?
sklearn.manifold.smacof(dissimilarities, *, metric=True, n_components=2, init=None, n_init=8,n_jobs=None, max_iter=300, verbose=0, eps=0.001, random_state=None, return_n_iter=False)
[源碼]
使用SMACOF算法計算多維縮放。
SMACOF(通過簡化包含多項式的函數進行縮放)算法是一種多維縮放算法,該算法使用主流化技術將目標函數(應力)最小化。應力集中化也稱為Guttman變換,可確保應力的單調收斂,并且比諸如梯度下降之類的傳統技術更強大。
度量MDS的SMACOF算法可以通過以下步驟進行總結:
隨機設置初始啟動配置。 計算應力 計算古特曼變換 迭代2和3直到收斂。
非度量算法在計算應力之前添加了單調回歸步驟。
參數 | 說明 |
---|---|
dissimilarities | ndarray, shape (n_samples, n_samples) 點之間的成對差異。必須對稱。 |
metric | boolean, optional, default: True 計算度量或非度量SMACOF算法。 |
n_components | int, optional, default: 2 放入不同的維度數。如果 init 提供了 數組,則將覆蓋此選項,并且使用的初始形狀 init 來確定嵌入空間的維數。 |
init | ndarray, shape (n_samples, n_components), optional, default: None 開始進行嵌入配置以初始化算法。默認情況下,該算法使用隨機選擇的數組初始化。 |
n_init | int, optional, default: 8 SMACOF算法將使用不同的初始化運行的次數。最終結果是否是運行的最佳輸出,取決于最終應力最小的運行。如果 init 提供,則將覆蓋此選項,并執行一次運行。 |
n_jobs | int or None, optional (default=None) 用于計算的作業數。如果使用多個初始化( n_init ),則算法的每次運行都是并行計算的。None 除非在joblib.parallel_backend 環境中,否則表示1 。 undefined表示使用所有處理器。有關更多詳細信息,請參見詞匯表。 |
max_iter | int, optional, default: 300 單次運行的SMACOF算法的最大迭代次數。 |
verbose | int, optional, default: 0 詳細程度。 |
eps | float, optional, default: 1e-3 關于應力的相對公差,在該應力下可以收斂。 |
random_state | int, RandomState instance, default=None 確定用于初始化中心的隨機數生成器。在多個函數調用之間傳遞int以獲得可重復的結果。請參閱:term: Glossary <random_state> . |
return_n_iter | bool, optional, default: False 是否返回迭代次數。 |
返回值 | 說明 |
---|---|
X | ndarray, shape (n_samples, n_components)n_components -space 中點的坐標。 |
stress | float 應力的最終值(差異平方距離和所有約束點距離的平方和)。 |
n_iter | int 對應于最佳應力的迭代次數。僅當f return_n_iter 設置為True 時返回。 |
注:
1 “Modern Multidimensional Scaling - Theory and Applications” Borg, I.; Groenen P. Springer Series in Statistics (1997)
2 “Nonmetric multidimensional scaling: a numerical method” Kruskal, J. Psychometrika, 29 (1964)
3 “Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis” Kruskal, J. Psychometrika, 29, (1964)