等度量映射(Isometric Mapping,简称Isomap)

等度量映射(Isometric Mapping,简称Isomap)

1 绪论

MDS中已经说明了为何要进行降维。而进行降维的一般有两类方法:特征选择和特征提取。

  • 特征选择:根据一定的标准学则显著特征
  • 特征提取:通过对所有特征进行变换来获取精简的特征集

对于降维方法中,经典的线性方法(例如主成分分析,PCA)存在一些不足,即无法发现螺旋的一维结构。Isomap就是处理此类问题的一种经典的非线性学习方法。

2 等度量映射

等度量映射(Isometric Mapping,Isomap)的基本观点同MDS较为类似,即从高维数据中找到任意两个样本点之间的“测地距离”,通过映射实现在低维空间中“测地距离”近似保持不变。

与MDS不同的是,MDS计算的是欧氏距离,而Isomap计算的是“测地距离”。

如上图,“测地距离”即A中沿曲实线的两点之间的距离,欧氏距离即如A中虚直线的两点之间的直线距离。B图即A的近邻图,C图即B图的低维映射结果,C图中红线为它的“测地距离”而蓝线则为欧氏距离。

很明显,Isomap中计算“测地距离”是非常重要的一步。如何计算“测地距离”呢?
我们可以利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出近邻点,然后建立一个近邻图。于是计算两点之间测地距离的问题就变成了计算近邻图上两点之间的最短路径问题。而计算最短路径可以使用Dijkstra算法或Floyd算法。得到任意两点的距离之后就可以通过MDS算法来获得样本点在低维空间中的坐标。

3 Isomap伪码说明

4 以瑞士卷例子来展示Isomap算法

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d as p3d
from sklearn import datasets, manifold
from sklearn.datasets import make_swiss_roll

def test_swiss_roll(n_samples=5000):
	X, t = make_swiss_roll(n_samples=n_samples, noise=0.2, random_state=42) # X为坐标 t为颜色
	# figure1=plt.figure()
	axes = [-11.5, 14, -2, 23, -12, 15]	
	fig = plt.figure()
	ax = fig.add_subplot(121, projection='3d')
	ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=t, cmap=plt.cm.hot)
	ax.view_init(10, 60)
	ax.set_xlabel("$x$", fontsize=18)
	ax.set_ylabel("$y$", fontsize=18)
	ax.set_zlabel("$z$", fontsize=18)
	ax.set_xlim(axes[0:2])
	ax.set_ylim(axes[2:4])
	ax.set_zlim(axes[4:6])
	plt.title('3D swiss roll')
	ax2 = fig.add_subplot(122)
	Z = manifold.Isomap(n_components=2).fit_transform(X)
	ax2.scatter(Z[:, 0], Z[:, 1], c=t, cmap=plt.cm.hot)
	plt.title('sklearn Isomap')
	plt.show()

if __name__ == '__main__':
	test_swiss_roll()

程序运行可见:https://aistudio.baidu.com/aistudio/projectdetail/2507328

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被风吹过的会不会要逝去

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值