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)