刚整理完PCA的内容,又记得之前用过LDA但是并没有在这里整理,所以今天把这两个算法整理下,方便以后查阅。
主成分分析(PCA)与线性判别分析(LDA)的区别与联系
1 主成分分析(PCA)2 线性判别分析(LDA)3 PCA与LDA的区别3.1 PCA3.1.1 目的3.1.2 步骤3.2 LDA3.2.1 特点3.2.2 目的3.2.3 步骤3.3 相同与不同参考文章注:这里说的LDA实际上讲的是Fisher linear discriminant analysis
在machine learning领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是unsupervised,也就是说不需要知道sample对应的label,而LDA是supervised,需要知道每一个数据点对应的label。
1 主成分分析(PCA)
有关主成分分析的内容在下面这篇文章中有详细解释:主成分分析(PCA)
2 线性判别分析(LDA)
LDA(这里指的是fisher’s linear discriminant)把线性分类看成是数据降维的一种应用。考虑一个二分类问题,假设输入DDD维向量xxx,我们通过线性变换将它投影到一维空间上:
y=wTxy=w^Txy=wTx
如果我们对yyy设定一个阈值,令y⩾−w0y⩾−w0y⩾−w0的时候,判定为class1class1class1,否则判定为class2class2class2那么这其实就是标准的线性分类器。
为了能让我们的判定尽可能准确,我们需要让投影之间的两个类之间的差距尽可能大。
现在仍旧考虑二分类问题,假设有N1N1N1个C1C1C1类别的点,有N2N2N2个C2C2C2类别的点,则两个类别的数据的均值分别为
最简单的分类方法,就是让投影之后的两个类别的均值相差越大越好。也就是说,我们需要选择一个投影方向(单位投影矢量 www),使得下式最大
其中
同时满足
wTw=1w^Tw=1wTw=1
这么一个约束优化问题和上面的PCA类似,解得结果可以得到
w∝(m2−m1)w∝(m_2−m_1)w∝(m2−m1)
也就是说, www是和两类数据中心点构成的矢量平行。如下面左图所示:
红色和蓝色分别表示两类数据,可以看到,尽管在投影方向www上,两类数据确实有分开,但是还存在很大程度上的交叠。
Fisher提出的观点就是在让投影之后的数据尽量分开的同时,也要让两个数据的方差最小,最后变成右图所示的结果。
投影之后数据的类内方差表达式为
其中 yny_nyn表示 xnx_nxn投影之后的值。
我们可以定义总体的类内方差为 s12+s22s^2_1+s^2_2s12+s22。Fisher判别准则定义为类间方差和类内方差的比值,也就是
把 www的表达式代入得到
其中 SBS_BSB表示类间协方差矩阵, SwS_wSw表示类内协方差矩阵,也就是
对(1)式求导,令导数等于0(为了方便,可以对(1)式两边先取对数,然后求导),可以得到
从(2)式我们可以看到 SBwS_BwSBw是始终和 m2−m1m_2−m_1m2−m1平行的,同时我们并不在意 www的大小,只在意它的方向,因此,我们可以把 wTSBww^TS_BwwTSBw 和 wTSwww^TS_wwwTSww 直接去掉,然后再在(3)式两边同时乘上 Sw−1S^{−1}_wSw−1,就可以得到
(4)式表示的就是Fisher线性判别器。找到和合理的投影方向之后,我们可以通过极大似然的方法来估计最优的分类阈值。
3 PCA与LDA的区别
所以PCA和LDA虽然都用到数据降维的思想,但是监督方式不一样,目的也不一样。
PCA是为了去除原始数据集中冗余的维度,让投影子空间的各个维度的方差尽可能大,也就是熵尽可能大。
LDA是通过数据降维找到那些具有discriminative的维度,使得原始数据在这些维度上的投影,不同类别尽可能区分开来。
3.1 PCA
PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法,可用于提取数据的主要特征分量。
3.1.1 目的
在高维数据中找方差最大的方向, 将nnn维特征映射到kkk维上(k<n)(k < n)(k<n),kkk维特征是全新的正交特征,也叫主成分。
3.1.2 步骤
1)将原始数据按列组成nnn行mmm列矩阵X;
2)将XXX的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值;
3)求出协方差矩阵;
4)求出协方差矩阵的特征值及对应的特征向量;
5)按对应特征值从大到小顺序排序,将对应特征向量按行排列成矩阵,取前kkk行组成矩阵UUU;
6)Y=UXY=UXY=UX即为降维到kkk维后的数据;
3.2 LDA
LDA(Linear Discriminate Analysis)把线性分类看成是数据降维的一种应用。
3.2.1 特点
可以作为一种特征抽取的技术;
需要监督信息;
对于不适用于正则化的模型,可以降低因为纬度灾难带来的过拟合;
3.2.2 目的
通过最小化类内距离,最大化类间距来找到最优化分类的特征子空间。
3.2.3 步骤
1)计算类内散度矩阵SwS_wSw;
2)计算类间散度矩阵SbS_bSb ;
3)计算矩阵Sw−1SbS_w^{− 1} S_{b}Sw−1Sb;
4) 计算矩阵Sw−1SbS_w^{− 1} S_{b}Sw−1Sb; 的特征值以及对应的特征向量;
5) 选择前kkk个特征向量构造一个 d∗kd∗kd∗k 维的转换矩阵 WWW, 其中特征向量以列的形式排列;
6)对样本集中的每一个样本特征xix_ixi ,转化为新的样本Yi=WTxiY_i = W^T x_iYi=WTxi ;
3.3 相同与不同
LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。
当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:
参考文章
PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别
主成分分析(PCA)与线性判别分析(LDA)的区别与联系
PCA和LDA简介