sklearn.manifold.MDS

class sklearn.manifold.MDS(n_components=2, *, metric=True, n_init=4, max_iter=300, verbose=0, eps=0.001, n_jobs=None, random_state=None, dissimilarity='euclidean')

[源码]

多维缩放

用户指南中阅读更多内容。

参数 说明
n_components int, optional, default: 2
降维到的维数
metric boolean, optional, default: True
如果为True,则执行度量MDS;否则,执行非度量MDS。
n_init int, optional, default: 4
不同初始化时SMACOF算法运行的次数。最终结果将是运行的最佳输出,由具有最小最终压力(stress)的运行决定。
max_iter int, optional, default: 300
单次运行的SMACOF算法的最大迭代次数。
verbose int, optional, default: 0
详细程度。
eps float, optional, default: 1e-3
关于压力(stress)的相对公差,在该应力下可以收敛。
n_jobs int or None, optional (default=None)
用于进行计算的CPU数量。 如果使用多个初始化(n_init),则算法的每次运行都是并行计算的。None除非在joblib.parallel_backend环境中,否则表示1 。 undefined表示使用所有处理器。有关更多详细信息,请参见词汇表
random_state int, RandomState instance, default=None
确定用于初始化中心的随机数生成器。通过一个int跨多个函数调用的结果。参见term: Glossary <random_state>.
dissimilarity ‘euclidean’,‘precomputed’, optional, default: ‘euclidean’
使用的差异度量:
- ‘euclidean’:
数据集中点之间的成对欧几里得距离(euclidean)。
- ‘precomputed’:
预先计算的差异直接传递给fitfit_transform
属性 说明
embedding_ array-like, shape (n_samples, n_components)
将数据集的位置存储在嵌入空间中。
stress_ float
压力(stress)的最终值(差异平方距离和所有约束点距离的平方和)。

参考文献

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)

实例

>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import MDS
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(179764)
>>> embedding = MDS(n_components=2)
>>> X_transformed = embedding.fit_transform(X[:100])
>>> X_transformed.shape
(1002)
方法 说明
fit(X[, y, init]) 计算点在嵌入空间中的位置
fit_transform(X[, y, init]) 从X拟合数据,并返回嵌入的坐标
get_params([deep]) 获取此估计量的参数。
set_params(**params) 设置此估算量的参数。
__init__(n_components=2, *, metric=True, n_init=4, max_iter=300, verbose=0, eps=0.001, n_jobs=None, random_state=None, dissimilarity='euclidean')

[源码]

初始化self, 请参阅help(type(self))以获得准确的说明。

fit(X, y=None, init=None)

[源码]

计算点在嵌入空间中的位置

参数 说明
X array, shape (n_samples, n_features) or (n_samples, n_samples)
输入数据。如果为dissimilarity=='precomputed',则输入应为相异矩阵。
y Ignored
init ndarray, shape (n_samples,), optional, default: None
开始配置嵌入以初始化SMACOF算法。默认情况下,算法是用随机选择的数组初始化的。
fit_transform(X, y=None, init=None)

[源码]

从X拟合数据,并返回嵌入的坐标

参数 说明
X array, shape (n_samples, n_features) or (n_samples, n_samples)
输入数据。如果为dissimilarity=='precomputed',则输入应为相异矩阵。
y Ignored
init ndarray, shape (n_samples,), optional, default: None
开始配置嵌入以初始化SMACOF算法。默认情况下,算法是用随机选择的数组初始化的。
get_params(deep=True)

[源码]

获取此估计量的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算量和作为估算量的所包含子对象的参数。
返回值 说明
params mapping of string to any
映射到其值的参数名。
set_params(**params)

[源码]

设置此估算量的参数。

该方法适用于简单估计量以及嵌套对象(例如pipelines)。后者具有形式的参数。<component>__<parameter>以便可以更新嵌套对象的每个组件。

参数 说明
**params dict
估算量参数。
返回值 说明
self object
估算量实例。