概念
多维缩放(Multi-Dimensional Scaling,MDS)是一种经典的降维技术,用于将高维数据降维到低维空间中,同时尽量保留数据点之间的距离关系。与t-SNE类似,MDS也可以用于可视化高维数据在低维空间中的分布,但它更倾向于保留全局的距离关系。
MDS的核心思想是,尽可能在降维后的低维空间中重构原始数据点之间的距离或相似度。这可以通过找到一个在低维空间中的表示,使得在原始高维空间中的距离与在低维空间中的距离尽可能一致。
种类
度量MDS:度量MDS试图保留数据点之间的欧氏距离或其他度量距离。它通过在低维空间中优化数据点之间的距离来实现。
非度量MDS:非度量MDS不要求精确地重建原始数据点之间的距离,而是在低维空间中找到一个表示,使得在低维空间中的排序或秩次与原始数据点之间的排序关系相似。
代码实现
import numpy as np
from sklearn.manifold import MDS
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
# 加载鸢尾花数据集
data = load_iris()
X = data.data
# 创建MDS模型并降维
mds = MDS(n_components=2, random_state=42)
X_mds = mds.fit_transform(X)
# 可视化降维结果
plt.scatter(X_mds[:, 0], X_mds[:, 1])
plt.xlabel('MDS Dimension 1')
plt.ylabel('MDS Dimension 2')
plt.title('MDS Visualization')
plt.show()