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')[源代码]#

多维缩放。

阅读更多的 User Guide .

参数:
n_componentsint,默认=2

将差异浸入其中的维度数量。

metric布尔,默认=True

如果 True ,执行度量BDS;否则,执行非度量BDS。当 False (i.e.非度量的BDS),与0的差异被视为缺失值。

n_initint,默认=4

SMACOF算法将在不同初始化下运行的次数。最终结果将是运行的最佳输出,由最终压力最小的运行确定。

max_iterint,默认=300

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

verboseint,默认=0

冗长的程度。

eps浮点数,默认值= 1 e-3

相对于声明收敛的应力的相对公差。的价值 eps 应根据是否单独调整 normalized_stress 市.我们

n_jobsint,默认=无

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

None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

random_stateint,RandomState实例或无,默认=无

确定用于初始化中心的随机数生成器。传递int以获得跨多个函数调用的可重复结果。看到 Glossary .

dissimilarity'欧几里得',',',默认='欧几里得'

要使用的差异性测量:

  • “欧几里得”:

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

  • “预先计算的”:

    预先计算的差异直接传递给 fitfit_transform .

normalized_stressbool或“Auto”默认=“Auto”

是否使用并返回标准压力值(Stress-1)而不是默认计算的原始压力。仅支持非指标型的BDS。

Added in version 1.2.

在 1.4 版本发生变更: 默认值从 False"auto" 在1.4版本中。

属性:
embedding_形状的nd数组(n_samples,n_components)

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

stress_浮子

The final value of the stress (sum of squared distance of the disparities and the distances for all constrained points). If normalized_stress=True, and metric=False returns Stress-1. A value of 0 indicates "perfect" fit, 0.025 excellent, 0.05 good, 0.1 fair, and 0.2 poor [1].

dissimilarity_matrix_形状的nd数组(n_samples,n_samples)

两点之间的成对差异。对称矩阵:

  • 要么通过设置使用自定义相异性矩阵 dissimilarity 到“预先计算的”;

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

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

n_iter_int

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

参见

sklearn.decomposition.PCA

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

sklearn.decomposition.KernelPCA

使用核和PCA进行非线性降维。

TSNE

T分布随机邻居嵌入。

Isomap

Manifold learning based on Isometric Mapping.

LocallyLinearEmbedding

使用局部线性嵌入进行总管学习。

SpectralEmbedding

非线性维度的谱嵌入。

引用

[1]

“非度量多维缩放:一种数值方法”Kruskal,J. Psychmetrika,29(1964)

[2]

“通过优化非度量假设的契合度进行多维缩放”Kruskal,J. Psychmetrika,29,(1964)

[3]

“现代多维标度-理论与应用”博格,I; Groenen P. Springer统计学系列(1997)

示例

>>> 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)[源代码]#

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

参数:
X形状类似阵列(n_samples,n_features)或 (n_samples,n_samples)

输入数据。如果 dissimilarity=='precomputed' ,输入应该是相异性矩阵。

y忽视

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

init形状的nd数组(n_samples,n_components),默认=无

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

返回:
self对象

拟合估计量。

fit_transform(X, y=None, init=None)[源代码]#

匹配来自的数据 X ,并返回嵌入的坐标。

参数:
X形状类似阵列(n_samples,n_features)或 (n_samples,n_samples)

输入数据。如果 dissimilarity=='precomputed' ,输入应该是相异性矩阵。

y忽视

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

init形状的nd数组(n_samples,n_components),默认=无

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

返回:
X_new形状的nd数组(n_samples,n_components)

X在新的空间中变形。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

set_fit_request(*, init: bool | None | str = '$UNCHANGED$') MDS[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
init字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 init 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

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

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。