ClassicalMDS#

class sklearn.manifold.ClassicalMDS(n_components=2, *, metric=None, metric_params=None)[source]#

经典多维缩放 (MDS)。

这也被称为主坐标分析 (PCoA) 或 Torgerson 缩放。它是 MDS 的一个版本,具有基于特征分解的精确解。如果输入相异矩阵由某些向量之间的成对欧几里得距离组成,则经典 MDS 等效于对这组向量应用 PCA。

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

参数:
n_componentsint, default=2

嵌入维度数。

metricstr or callable, default=’euclidean’

用于计算相异度的度量。默认值为“euclidean”。

如果 metric 是字符串,它必须是 scipy.spatial.distance.pdist 允许的用于其 metric 参数的选项之一,或者是 sklearn.metrics.pairwise.distance_metrics 中列出的度量之一

如果 metric 是“precomputed”,则假定 X 是距离矩阵,并且在拟合期间必须为方阵。

如果 metric 是可调用函数,它接受表示 1D 向量的两个数组作为输入,并且必须返回一个值来指示这些向量之间的距离。这适用于 Scipy 的度量,但效率低于将度量名称作为字符串传递。

metric_paramsdict, default=None

用于相异度计算的附加关键字参数。

属性:
embedding_形状为 (n_samples, n_components) 的 ndarray

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

dissimilarity_matrix_形状为 (n_samples, n_samples) 的 ndarray

点之间的成对相异度。

eigenvalues_形状为 (n_components,) 的 ndarray

双中心相异矩阵的特征值,对应于每个选定的分量。它们等于嵌入空间中 n_components 变量的平方 2 范数。

n_features_in_int

拟合 期间看到的特征数。

feature_names_in_shape 为 (n_features_in_,) 的 ndarray

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

另请参阅

sklearn.decomposition.PCA

主成分分析。

MDS

度量和非度量 MDS。

References

[1]

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

示例

>>> from sklearn.datasets import load_digits
>>> from sklearn.manifold import ClassicalMDS
>>> X, _ = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> cmds = ClassicalMDS(n_components=2)
>>> X_emb = cmds.fit_transform(X[:100])
>>> X_emb.shape
(100, 2)
fit(X, y=None)[source]#

计算嵌入位置。

参数:
X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的类数组对象

输入数据。如果 metric=='precomputed',则输入应为相异矩阵。

y被忽略

未使用,按照惯例为保持 API 一致性而存在。

返回:
selfobject

拟合的估计器。

fit_transform(X, y=None)[source]#

计算并返回嵌入位置。

参数:
X形状为 (n_samples, n_features) 或 (n_samples, n_samples) 的类数组对象

输入数据。如果 metric=='precomputed',则输入应为相异矩阵。

y被忽略

未使用,按照惯例为保持 API 一致性而存在。

返回:
X_newndarray of shape (n_samples, n_components)

嵌入坐标。

get_metadata_routing()[source]#

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

请查阅 用户指南,了解路由机制如何工作。

返回:
routingMetadataRequest

封装路由信息的 MetadataRequest

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deepbool, default=True

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

返回:
paramsdict

参数名称映射到其值。

set_params(**params)[source]#

设置此估计器的参数。

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

参数:
**paramsdict

估计器参数。

返回:
selfestimator instance

估计器实例。