一、 问题
高维数据一直是数据挖掘领域一个比较棘手的问题,尤其是在文本挖掘、图像处理以及基因信息处理等领域,在数据维度比较高的情况下,我们训练所得到的学习器通常就会无法工作,或者变得效率很低。那么为了更好的分析利用数据,我们就不得不把数据集从高维空间降到低维空间。如何实现利用MDS和isomap算法进行降维?
二、 数据简介
广泛应用的Iris数据集,数据量小,计算方便。150个样本,3给个标签,含有4个feature(特征虽然比较少,但是仍然无法进行可视化分析)
三、 核心算法
1.MDS算法:
维度缩放算法,保持降维后各个样本间的欧氏距离不变。假设D是原样本数据集里面的每个元素是x_i,Z是降维后的样本数据集,里面每个元素是z_i(黑体表示向量)。dist_ij是原样本集中x_i和x_j的距离,也是降维后样本集中z_i和z_j的距离。我们可以通过距离dist_ij这点,通过降维后矩阵的内积矩阵B来间接确定降维后的矩阵。
1.计算距离矩阵D.我们的目标是获得新的Z,满足距离不变。也就是 ||zi−zj||=distij
2. 假设一个中间矩阵 B=ZTZ ,那么有
dist2ij=|zi|2+|zj|2−2zTizj=bii+bjj+bij
令降维后的样本Z被中心化,也就是 ∑mi=1zi=0 . … 我们显然有。 ∑mi=1dist