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', normalized_stress='auto')#

多维缩放。

更多信息请参阅 用户指南

Parameters:
n_componentsint, default=2

沉浸不相似性的维度数量。

metricbool, default=True

如果为 True ,执行度量 MDS;否则,执行非度量 MDS。 当 False (即非度量 MDS)时,不相似性为 0 被视为缺失值。

n_initint, default=4

SMACOF 算法将以不同的初始化运行多次。最终结果将是运行中最终应力最小的最佳输出。

max_iterint, default=300

单次运行 SMACOF 算法的最大迭代次数。

verboseint, default=0

详细级别。

epsfloat, default=1e-3

相对于应力声明收敛的相对容差。 eps 的值应根据是否使用 normalized_stress 进行单独调整。

n_jobsint, default=None

用于计算的作业数量。如果使用多个初始化( n_init ),算法的每次运行将并行计算。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅 Glossary

random_stateint, RandomState 实例或 None, default=None

确定用于初始化中心的随机数生成器。传递一个 int 以在多次函数调用中获得可重复的结果。 请参阅 Glossary

dissimilarity{‘euclidean’, ‘precomputed’}, default=’euclidean’

使用的不相似性度量:

  • ‘euclidean’:

    数据集中点之间的成对欧几里得距离。

  • ‘precomputed’:

    预计算的不相似性直接传递给 fitfit_transform

normalized_stressbool 或 “auto” default=”auto”

是否使用并返回标准化的应力值(Stress-1),而不是默认计算的原始应力。仅在非度量 MDS 中支持。

Added in version 1.2.

Changed in version 1.4: 默认值在 1.4 版本中从 False 更改为 "auto"

Attributes:
embedding_ndarray of shape (n_samples, n_components)

存储数据集在嵌入空间中的位置。

stress_float

最终的应力值(所有约束点的差异和距离的平方距离之和)。 如果 normalized_stress=Truemetric=False ,返回 Stress-1。 值为 0 表示“完美”拟合,0.025 优秀,0.05 良好,0.1 一般,0.2 较差 [1]

dissimilarity_matrix_ndarray of shape (n_samples, n_samples)

点之间的成对不相似性。对称矩阵:

  • 通过将 dissimilarity 设置为 ‘precomputed’ 使用自定义不相似性矩阵;

  • 或使用欧几里得距离从数据构建不相似性矩阵。

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 期间看到的特征名称。仅当 X 的特征名称为所有字符串时定义。

Added in version 1.0.

n_iter_int

对应于最佳应力的迭代次数。

See also

sklearn.decomposition.PCA

主成分分析,一种线性降维方法。

sklearn.decomposition.KernelPCA

使用核和 PCA 的非线性降维。

TSNE

T 分布随机邻域嵌入。

Isomap

基于等距映射的流形学习。

LocallyLinearEmbedding

使用局部线性嵌入的流形学习。

SpectralEmbedding

非线性降维的光谱嵌入。

References

[1]

“Nonmetric multidimensional scaling: a numerical method” Kruskal, J. Psychometrika, 29 (1964)

[2]

“Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis” Kruskal, J. Psychometrika, 29, (1964)

[3]

“Modern Multidimensional Scaling - Theory and Applications” Borg, I.; Groenen P. Springer Series in Statistics (1997)

Examples

>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import MDS
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> embedding = MDS(n_components=2, normalized_stress='auto')
>>> X_transformed = embedding.fit_transform(X[:100])
>>> X_transformed.shape
(100, 2)

有关更详细的示例,请参阅: 多维尺度分析

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

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

Parameters:
X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的类数组

输入数据。如果 dissimilarity=='precomputed' ,输入应为不相似度矩阵。

y忽略

未使用,为保持API一致性而存在。

init形状为 (n_samples, n_components) 的 ndarray,默认=None

SMACOF 算法初始化的嵌入起始配置。默认情况下,算法以随机选择的数组初始化。

Returns:
selfobject

已拟合的估计器。

fit_transform(X, y=None, init=None)#

拟合来自 X 的数据,并返回嵌入坐标。

Parameters:
X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的类数组

输入数据。如果 dissimilarity=='precomputed' ,输入应为不相似度矩阵。

y忽略

未使用,为保持 API 一致性而存在。

init形状为 (n_samples, n_components) 的 ndarray,默认=None

SMACOF 算法初始化的嵌入起始配置。默认情况下,算法以随机选择的数组初始化。

Returns:
X_new形状为 (n_samples, n_components) 的 ndarray

在新空间中变换的 X。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, init: bool | None | str = '$UNCHANGED$') MDS#

Request metadata passed to the fit method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to fit .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
initstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for init parameter in fit .

Returns:
selfobject

The updated object.

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。