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)