PCA(主成分分析)和LDA(线性判别分析,Fisher Linear Discriminant Analysis)都是数据降维的一种方式。但是,PCA是无监督的,而LDA是有监督的。
一、PCA
在PRML书上有两种定义PCA的方式,其中一种将PCA定义为一种正交投影,使得原始数据在投影子空间的各个维度的方差最大化。
对于观测数据x(D维空间),我们的目标是把数据投影到一个更低的M维中。原始数据集的均值向量可以表示成:
投影之后的均值向量可以表示成:
投影之后的方差:
S是协方差矩阵:
PCA是为了最大化该方差,变成一个约束优化问题。引入拉格朗日乘子lambda1,该优化问题变为:
直接对u1求导,令导数为0,得到:
即u1是S中lambda1特征值对应的特征向量。对于上式,等号两边同乘以u1转置,则可得方差为:
因此,lambda1为S的最大的特征值。
此外,我们可以根据各维度的包含的信息量(能量)来选择投影空间的维度M。
二、LDA
LDA(这里指Fisher's Linear Discriminant Analysis)把线性分类看成是数据降维的一种应用。对于二分类问题,假设输入D维向量x,我们通过线性变换把他投影到一维空间:
我们需要让投影之间的两个类之间的差距尽可能的大。假设两类数据的均值为:
最简单的方法是让投影后的两个类的均值相差越大越好,即使得下式最大:
同时满足:
那么解该约束优化问题,得到:
即w是两类数据中心点连线构成的平行矢量,如左图:
但是两类点虽然有分开,但是中间有重叠。Fisher的观点认为,让两类点分开的同时,也要让两类数据的方差最小,最后变成右图。类内方差表示为:
则总体类内方差为:
Fisher判别准则定义为类间方差和类内方差的比值:
把w带入表达式:
其中SB为类间协方差矩阵,Sw为类内协方差矩阵:
对(1)式求导,令导数为0(为了方便,可将该式取对数),得:
从(2)式看出,SBw是始终与m2-m1平行的,同时我们并不在意w的大小,只在意它的方向。因此,可以把(3)中括号中的两项去掉,在(3)式左乘Sw的逆矩阵,就得到:
即Fisher线性判别器。找到合理的投影方向后,可以通过极大似然估计求出最优的分类阈值。
三、PCA与LDA的区别
首先,PCA与LDA的监督方式不同。
第二,他们的目的也不同。PCA是为了去除原始数据中冗余的维度,让投影子空间的各维度的方差尽可能的大,即熵尽可能的大。LDA是通过数据降维找到那些具有判别性的维度,使得原始数据在这些维度上投影,不同类别尽可能的分隔开。下图展示其中的区别。