四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)

  1. PCA

Principle components analysis
主成分分析法:https://blog.csdn.net/weixin_43909872/article/details/85321384
它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
缺点:PCA是用投影后方差大小来决定如何投影,比如下图,第二种投影显然数据方差更大,但本来应该被分开的两块数据融为一体了。投影以后对数据的区分作用并不大。
四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)_第1张图片

  1. LDA

Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法。与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分!
LDA算法: https://www.cnblogs.com/pinard/p/6244265.html
还是下图,LDA算法会把数据映射到第一个直线上,保证数据的区分度

四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)_第2张图片

PCA和LDA的异同:
相同点:
a. 两者均可以对数据进行降维。
b. 两者在降维时均使用了矩阵特征分解的思想。
c. 两者都假设数据符合高斯分布。

不同点:
a. LDA是有监督的降维方法,而PCA是无监督的降维方法
b. LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
c. LDA除了可以用于降维,还可以用于分类。
d. LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

  1. LLE

Locally linear embedding 局部线性嵌入
这是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。LLE可以说是流形学习方法最经典的工作之一。
主要思想是用测地距离(下面的实线距离)代替欧式距离(虚线距离)作为降维标准。
如图二,我们希望三维图能够展开,这样各种颜色的数据都能区分开,否则只是直接映射到二维平面各种颜色就会混在一起。
四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)_第3张图片
四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)_第4张图片

算法流程:

  1. 选择一些相近的点,x1, x2, x3, x4
    那么假设x1x1可以由x2,x3,x4x2,x3,x4线性表示:
    x1 = w2x2 +
    我们需要使得降维后的y1, y2, y3, y4同样满足这样的等式
    在这里插入图片描述
    具体推导和求解很多地方能搜到,不列了。
    思想就是先求w的权重能使得对于固定的K,每个点x的相邻点们算出来的值和x尽量接近,于是通过求均方差的最小值可以求出w
    然后根据w来选择具体的转置矩阵,使得降维后的相邻y们加权计算(w)都接近于y

LLE的优缺点:
主要优点有:
a. 可以学习任意维的局部线性的低维流形
b. 算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
主要缺点有:
a. 算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
b. 算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。

  1. LEP

拉普拉斯特征映射(Laplacian Eigenmaps)看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系,这上面有点类似LLE算法。具体来讲,拉普拉斯特征映射是一种基于图的降维算法,它希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构。
知乎上一个文章比较便于理解:https://zhuanlan.zhihu.com/p/25096844

理解这个文章的一些tips:
a. L=D-W是个半正定矩阵,也就是说用这个矩阵去转置任何向量的结果都是>=0的
b. 奇异值分解(Singular Value Decomposition, 简称SVD) http://www.cnblogs.com/pinard/p/6251584.html
c. f的模是1
d. L这个矩阵,是构造出来的天才矩阵。如果他的特征值是0,那么必然所有的特征向量里fi = fj(i和j相连的情况下)。如果只有一个连通图,那么就只有一个特征值0,对应的特征向量全是一样的,如果有两个连通图,那么有两个特征值0,对应的特征向量应该有两种。
e. 对下面式子的理解:3式里如果fi和ji只能取0和1,那么当wij权重大的时候,fi和fj得很相近,取0或者1,这样总和就变小了,相应的也就分出了两块,这两块之间的权重都很小——也就能把图给分成两块,把权重小的线都给割断。于是3式在这种情况下就跟2式是等同的。
在这里插入图片描述
在这里插入图片描述
f.相应的也可以想象,所有连通的图都算一起,那么那个矩阵特征值就是0,倒数第二小的特征值就是把图尽可能小的划分——牺牲尽可能少的权重线,划分成了两块,倒数第三小的特征值就代表划分成了三块

理解完了Graph Laplacian,下面是用这个来做LEP的简要步骤:
a. 构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。

b. 确定权重
确定点与点之间的权重大小,例如选用热核函数来确定,如果点ii和点jj相连,那么它们关系的权重设定为:
在这里插入图片描述
也可以直接一点,相连是1,不连是0

c. 特征映射
计算拉普拉斯矩阵L的特征向量与特征值:Ly=λDyLy=λDy
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。

比如下图,我们想把降到二维,就直接用2.21和2.37对应的特征向量,这两组向量能够比较好的模拟原来图里面的连通性,保留原来的数据结构(或者说分类)
四大降维算法的比较和一些理解(PCA、LDA、LLE、LEP)_第5张图片

参考文章:https://wenku.baidu.com/view/4cd2b8d4763231126edb11fd.html

你可能感兴趣的:(降维)