刚整理完PCA的内容,又记得之前用过LDA但是并没有在这里整理,所以今天把这两个算法整理下,方便以后查阅。
主成分分析(PCA)与线性判别分析(LDA)的区别与联系
注:这里说的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)把线性分类看成是数据降维的一种应用。考虑一个二分类问题,假设输入 D D D维向量 x x x,我们通过线性变换将它投影到一维空间上:
y = w T x y=w^Tx y=wTx
如果我们对 y y y设定一个阈值,令 y ⩾ − w 0 y⩾−w0 y⩾−w0的时候,判定为 c l a s s 1 class1 class1,否则判定为 c l a s s 2 class2 class2那么这其实就是标准的线性分类器。
为了能让我们的判定尽可能准确,我们需要让投影之间的两个类之间的差距尽可能大。
现在仍旧考虑二分类问题,假设有
N
1
N1
N1个
C
1
C1
C1类别的点,有
N
2
N2
N2个
C
2
C2
C2类别的点,则两个类别的数据的均值分别为
最简单的分类方法,就是让投影之后的两个类别的均值相差越大越好。也就是说,我们需要选择一个投影方向(单位投影矢量
w
w
w),使得下式最大
其中
同时满足
w
T
w
=
1
w^Tw=1
wTw=1
这么一个约束优化问题和上面的PCA类似,解得结果可以得到
w
∝
(
m
2
−
m
1
)
w∝(m_2−m_1)
w∝(m2−m1)
也就是说,
w
w
w是和两类数据中心点构成的矢量平行。如下面左图所示:
红色和蓝色分别表示两类数据,可以看到,尽管在投影方向 w w w上,两类数据确实有分开,但是还存在很大程度上的交叠。
Fisher提出的观点就是在让投影之后的数据尽量分开的同时,也要让两个数据的方差最小,最后变成右图所示的结果。
投影之后数据的类内方差表达式为
其中
y
n
y_n
yn表示
x
n
x_n
xn投影之后的值。
我们可以定义总体的类内方差为 s 1 2 + s 2 2 s^2_1+s^2_2 s12+s22。Fisher判别准则定义为类间方差和类内方差的比值,也就是
把
w
w
w的表达式代入得到
其中
S
B
S_B
SB表示类间协方差矩阵,
S
w
S_w
Sw表示类内协方差矩阵,也就是
对(1)式求导,令导数等于0(为了方便,可以对(1)式两边先取对数,然后求导),可以得到
从(2)式我们可以看到
S
B
w
S_Bw
SBw是始终和
m
2
−
m
1
m_2−m_1
m2−m1平行的,同时我们并不在意
w
w
w的大小,只在意它的方向,因此,我们可以把
w
T
S
B
w
w^TS_Bw
wTSBw 和
w
T
S
w
w
w^TS_ww
wTSww 直接去掉,然后再在(3)式两边同时乘上
S
w
−
1
S^{−1}_w
Sw−1,就可以得到
(4)式表示的就是Fisher线性判别器。找到和合理的投影方向之后,我们可以通过极大似然的方法来估计最优的分类阈值。
3 PCA与LDA的区别
所以PCA和LDA虽然都用到数据降维的思想,但是监督方式不一样,目的也不一样。
PCA是为了去除原始数据集中冗余的维度,让投影子空间的各个维度的方差尽可能大,也就是熵尽可能大。
LDA是通过数据降维找到那些具有discriminative的维度,使得原始数据在这些维度上的投影,不同类别尽可能区分开来。
3.1 PCA
PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法,可用于提取数据的主要特征分量。
3.1.1 目的
在高维数据中找方差最大的方向, 将 n n n维特征映射到 k k k维上 ( k < n ) (k < n) (k<n), k k k维特征是全新的正交特征,也叫主成分。
3.1.2 步骤
1)将原始数据按列组成
n
n
n行
m
m
m列矩阵X;
2)将
X
X
X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值;
3)求出协方差矩阵;
4)求出协方差矩阵的特征值及对应的特征向量;
5)按对应特征值从大到小顺序排序,将对应特征向量按行排列成矩阵,取前
k
k
k行组成矩阵
U
U
U;
6)
Y
=
U
X
Y=UX
Y=UX即为降维到
k
k
k维后的数据;
3.2 LDA
LDA(Linear Discriminate Analysis)把线性分类看成是数据降维的一种应用。
3.2.1 特点
可以作为一种特征抽取的技术;
需要监督信息;
对于不适用于正则化的模型,可以降低因为纬度灾难带来的过拟合;
3.2.2 目的
通过最小化类内距离,最大化类间距来找到最优化分类的特征子空间。
3.2.3 步骤
1)计算类内散度矩阵
S
w
S_w
Sw;
2)计算类间散度矩阵
S
b
S_b
Sb ;
3)计算矩阵
S
w
−
1
S
b
S_w^{− 1} S_{b}
Sw−1Sb;
4) 计算矩阵
S
w
−
1
S
b
S_w^{− 1} S_{b}
Sw−1Sb; 的特征值以及对应的特征向量;
5) 选择前
k
k
k个特征向量构造一个
d
∗
k
d∗k
d∗k 维的转换矩阵
W
W
W, 其中特征向量以列的形式排列;
6)对样本集中的每一个样本特征
x
i
x_i
xi ,转化为新的样本
Y
i
=
W
T
x
i
Y_i = W^T x_i
Yi=WTxi ;
3.3 相同与不同
LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。
当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:
参考文章
PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别
主成分分析(PCA)与线性判别分析(LDA)的区别与联系
PCA和LDA简介