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算法可以通過以下步驟進行總結:

  1. 隨機設置初始啟動配置。
  2. 計算應力
  3. 計算古特曼變換
  4. 迭代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)