降维方法小结和理解:PCA、LDA、MDS、ISOMAP、SNE、T-SNE、AutoEncoder

PCA:Principle component analysis 主成分分析

百度百科:它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用于减少数据集的维数,同时保持数据集的对方差贡献最大的特征。

降维方法小结和理解:PCA、LDA、MDS、ISOMAP、SNE、T-SNE、AutoEncoder_第1张图片
PCA是无监督的。(其实也可以不降维,比如上面的x1和x2变成了y1和y2,就没降维。)

LDA:Linear Discriminant Analysis 线性判别分析

区别于同名的LDA(Latent Dirichlet Allocation 文档主题生成模型)

刘建平: LDA是一种监督学习的降维技术,“投影后类内方差最小,类间方差最大”。

降维方法小结和理解:PCA、LDA、MDS、ISOMAP、SNE、T-SNE、AutoEncoder_第2张图片
(右图的分布比做图的分的更开)

MDS:MultiDimensional Scaling 多维尺度变换

MDS 是一种线性降维方法。其目标在新空间中两个点之间的距离,与原空间中尽量相同。

注意,MDS所说的距离就是欧式距离,这就导致无法处理流形,也就引出了ISOMAP。

ISOMAP: Isometric Mapping 等距特征映射

对于流形(Manifold,局部具有欧式空间性质的空间),两点之间的距离并非欧氏距离。而是采用“局部具有欧式空间性质”的原因,让两点之间的距离近似等于依次多个临近点的连线的长度之和。通过这个方式,将多维空间“展开”到低维空间。

思路详述 & 流形的解释(很有趣):{降维} ISOMAP等距特征映射 & MDS多维标度法

降维方法小结和理解:PCA、LDA、MDS、ISOMAP、SNE、T-SNE、AutoEncoder_第3张图片
(经典的“瑞士卷”问题)

SNE & T-SNE

SNE,不同于MDS和ISOMAP中基于距离不变的思想,而是先将欧氏距离距离转换为条件概率,来表达点与点之间的相似度,再优化两个分布之间的距离-KL散度,从而保证点与点之间的分布概率不变。

尽管SNE提供了很好的可视化方法,但是他很难优化,而且存在“拥挤问题”crowding problem。t-SNE在低维空间下使用更重长尾分布的t分布来避免拥挤问题和优化问题。

见到最好的资料: http://www.datakit.cn/blog/2017/02/05/t_sne_full.html

AutoEncoder:自编码器

这就完全是是另一种思路,深度学习的方式了。模型的输入和输出相同,都是高维的原数据。

理解为:(下图)高维数据(左测蓝色)通过某种网络变成低位数据(中间红色)后,又经过某种网络变回高维数据(右侧蓝色)。数据经过该模型前后没有变化,而中间的低维数据完全具有输入输出的高维数据的全部信息,所以可以用低维数据代表高维数据。
降维方法小结和理解:PCA、LDA、MDS、ISOMAP、SNE、T-SNE、AutoEncoder_第4张图片
之所以叫AutoEncoder,而不叫AutoEncoderDecoder,是因为训练好之后只有encoder部分有用,decoder部分就不用了。


进入深度学习的思路之后,编码的网络是开放的,可以自由设计的。一个思路是端到端,将网络的输出设为你任务要的结果(如类别、序列等),过程中的某层嵌入都可以作为降维的低维结果。当然,这种低维结果其实是模型的副产品,因为任务已经解决。比如bert模型得到(中文的)字嵌入。


如果你觉得本文有些许帮助,请点赞~~~~

你可能感兴趣的:(机器学习算法)