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’:
预计算的不相似性直接传递给
fit
和fit_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=True
且metric=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
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.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 infit
.
- Returns:
- selfobject
The updated object.