多维缩放#
- 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')[source]#
- 多维缩放。 - 更多信息请参见用户指南。 - 参数:
- n_componentsint, default=2
- 将差异嵌入的维度数。 
- metricbool, default=True
- 如果为 - True,则执行度量MDS;否则,执行非度量MDS。当为- False(即非度量MDS)时,差异为0被视为缺失值。
- n_initint, default=4
- 使用不同初始化运行SMACOF算法的次数。最终结果将是运行中最好的输出,由最终应力最小的运行决定。 
- max_iterint,默认为300
- 单次运行SMACOF算法的最大迭代次数。 
- verboseint,默认为0
- 详细程度。 
- epsfloat,默认为1e-3
- 声明收敛时关于应力的相对容差。 - eps的值应根据是否使用- normalized_stress单独调整。
- n_jobsint,默认为None
- 用于计算的作业数。如果使用多个初始化( - n_init),则算法的每次运行都将并行计算。- 除非在 - joblib.parallel_backend上下文中,- None表示1。- -1表示使用所有处理器。有关更多详细信息,请参见词汇表。
- random_stateint,RandomState 实例或 None,默认为 None
- 确定用于初始化中心的随机数生成器。传递一个整数以在多次函数调用中获得可重复的结果。请参见词汇表。 
- dissimilarity{'euclidean', 'precomputed'},默认为'euclidean'
- 使用的相异性度量。 - ‘euclidean’
- 数据集里点之间的成对欧几里得距离。 
 
- ‘precomputed’
- 预先计算的相异性直接传递给 - fit和- fit_transform。
 
 
- normalized_stressbool 或 “auto” ,默认为“auto”
- 是否使用并返回归一化应力值(Stress-1),而不是默认计算的原始应力。仅在非度量MDS中受支持。 - 1.2 版本中新增。 - 1.4 版本中的变更: 1.4 版本中的默认值从 - False更改为- "auto"。
 
- 属性:
- embedding_shape 为 (n_samples, n_components) 的 ndarray
- 存储数据集中在嵌入空间中的位置。 
- stress_float
- 应力的最终值(所有约束点的差异和距离的平方和)。如果 - normalized_stress=True且- metric=False,则返回 Stress-1。值为 0 表示“完美”拟合,0.025 表示优秀,0.05 表示良好,0.1 表示尚可,0.2 表示差[1]。
- dissimilarity_matrix_shape 为 (n_samples, n_samples) 的 ndarray
- 点之间的成对相异性。对称矩阵, - 或者通过将 - dissimilarity设置为 'precomputed' 来使用自定义相异性矩阵;
- 或者使用欧几里得距离从数据构建相异性矩阵。 
 
- n_features_in_int
- 在拟合期间看到的特征数量。 - 0.24 版本中新增。 
- feature_names_in_shape 为 (n_features_in_,) 的 ndarray
- 在拟合期间看到的特征名称。仅当 - X具有全部为字符串的特征名称时定义。- 1.0 版本中新增。 
- n_iter_int
- 与最佳应力相对应的迭代次数。 
 
 - 另请参见 - sklearn.decomposition.PCA
- 主成分分析是一种线性降维方法。 
- sklearn.decomposition.KernelPCA
- 使用核和PCA的非线性降维。 
- TSNE
- t 分布随机邻域嵌入。 
- Isomap
- 基于等距映射的流形学习。 
- LocallyLinearEmbedding
- 使用局部线性嵌入的流形学习。 
- SpectralEmbedding
- 用于非线性降维的光谱嵌入。 
 - 参考文献 [1]- “非度量多维缩放:一种数值方法” Kruskal, J. Psychometrika, 29 (1964) [2]- “通过优化对非度量假设的拟合优度进行多维缩放” Kruskal, J. Psychometrika, 29, (1964) [3]- “现代多维缩放——理论与应用” Borg, 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)[source]#
- 计算点在嵌入空间中的位置。 - 参数:
- Xshape 为 (n_samples, n_features) 或 (n_samples, n_samples) 的 array-like
- 输入数据。如果 - dissimilarity=='precomputed',则输入应为相异性矩阵。
- y忽略
- 未使用,根据约定存在以保持 API 一致性。 
- initshape 为 (n_samples, n_components) 的 ndarray,默认为 None
- 嵌入的起始配置,用于初始化 SMACOF 算法。默认情况下,算法使用随机选择的数组进行初始化。 
 
- 返回值:
- selfobject
- 已拟合的估计器。 
 
 
 - fit_transform(X, y=None, init=None)[source]#
- 拟合来自 - X的数据,并返回嵌入坐标。- 参数:
- Xshape 为 (n_samples, n_features) 或 (n_samples, n_samples) 的 array-like
- 输入数据。如果 - dissimilarity=='precomputed',则输入应为相异性矩阵。
- y忽略
- 未使用,根据约定存在以保持 API 一致性。 
- initshape 为 (n_samples, n_components) 的 ndarray,默认为 None
- 嵌入的起始配置,用于初始化 SMACOF 算法。默认情况下,算法使用随机选择的数组进行初始化。 
 
- 返回值:
- X_newndarray of shape (n_samples, n_components)
- 在新的空间中转换后的X。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南,了解路由机制的工作原理。 - 返回值:
- routingMetadataRequest
- 一个 - MetadataRequest封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool, default=True
- 如果为 True,则将返回此估计器和包含的作为估计器的子对象的参数。 
 
- 返回值:
- paramsdict
- 参数名称映射到其值。 
 
 
 - set_fit_request(*, init: bool | None | str = '$UNCHANGED$') MDS[source]#
- 请求传递给 - fit方法的元数据。- 请注意,只有在 - enable_metadata_routing=True时(请参见- sklearn.set_config),此方法才相关。请参阅用户指南,了解路由机制的工作原理。- 每个参数的选项为 - True:请求元数据,如果提供则传递给- fit。如果未提供元数据,则忽略请求。
- False:不请求元数据,元估计器不会将其传递给- fit。
- None:不请求元数据,如果用户提供元数据,则元估计器将引发错误。
- str:元数据应使用此给定的别名而不是原始名称传递给元估计器。
 - 默认值( - sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求而无需更改其他参数。- 在 1.3 版中添加。 - 注意 - 仅当此估计器用作元估计器的子估计器时(例如,在 - Pipeline内部使用),此方法才相关。否则,它无效。- 参数:
- initstr, True, False, 或 None, default=sklearn.utils.metadata_routing.UNCHANGED
- fit中- init参数的元数据路由。
 
- 返回值:
- selfobject
- 更新后的对象。 
 
 
 
 
     
 
 
