版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16137569/article/details/82385050
线性判别分析(Linear Discrimination Analysis,LDA)是一种经典的线性学习方法。它既可以用于分类,又可以作为一种降维方法。
1. LDA的基本思想
LDA基本思想比较简单:给定带有标签的训练样本集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能近,异类样本的投影点尽可能远。如果是进行分类,将新样本投影到同样的这条直线上,根据投影点的位置来确定新样本的类别。
举个例子,上图给出了两种不同的投影方式,直观上来看右图更好。因为右图中蓝色和红色数据较为集中,且类别之间的距离明显,而左图边界处数据混杂。
那么如何用数学语言对“同类样本的投影点尽可能近,异类样本的投影点尽可能远”进行表达呢,这里需要引入广义瑞利商。
2. 瑞利商和广义瑞利商
瑞利商是指这样的函数
R(A,x)
:
R(A,x)=xHAxxHx(1)
其中
x
为非零向量,
A
为
n×n
的Hermitan矩阵(复共轭对称矩阵,即共轭转置矩阵和自己相等,记为
AH=A
),这里我们只讨论实数的情况,所以
AT=A
。瑞利商还有一个很重要的性质:
λmin≤R(A,x)≤λmax(2)
其中
λmin,λmax
是矩阵
A
的最小和最大特征值。
当
x
是标准正交基时,即
xTx=1
时,瑞利商退化为
R(A,x)=xTAx
,这个形式在谱聚类和PCA中都有出现,比如PCA中是
WTXXTW
的形式(所以说瑞利商和样本投影方差有关?)。
现在再来看看广义瑞利商的概念:
R(A,B,x)=xHAxxHBx(3)
其中
x
为非零向量,
A,B
为
n×n
的Hermitan矩阵。通过标准化,可以将广义瑞利商转化为瑞利商的形式。令
x=B−12x′
,则(2)变为:
R(A,B,x′)=x′HB−12AB−12x′x′HB−12BB−12x′=x′HB−1Ax′x′Hx′
根据式(2),我们可以知道,
R(A,B,x′)
的最大值为矩阵
B−1A
的最大特征值,最小值为
B−1A
的最小特征值。
3. 二分类LDA原理
回顾第一节,LDA的思想是设法将样本投影到一条直线上,使得:
- 同类样本的投影点尽可能近
- 异类样本的投影点尽可能远
现在我们来讨论一下如何用数学语言表示这两条性质,现在我们首先从比较简单的二类LDA入手,分析LDA原理。
给定数据集
D={(xi,yi)}mi=1
,其中
xi
为
n
维向量,
yi∈{0,1}
。令
Xi,μi,Σi
分别表示第
i∈{0,1}
类样本的集合、均值向量、协方差矩阵,即:
μiΣi=1|Xi|∑x∈Xix (i=0,1)=∑x∈Xi(x−μi)(x−μi)T (i=0,1)
如果将数据投影到直线
w
上,则两类样本的中心在直线上的投影分别为
wTμ0
和
wTμ1
(图中实心圆和实心三角)。所有样本在直线上投影的协方差分别为
wTΣ0w
和
wTΣ1w
。于是我们可以有下面的结论:
- 同类样本的投影点尽可能近
⇒minwTΣ0w+wTΣ1w
- 异类样本的投影点尽可能远
⇒max∥wTμ0−wTμ1∥22
所以我们的优化目标为:
argmaxwJ(w)=∥wTμ0−wTμ1∥22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w(4)
我们一般定义类内散度矩阵
Sw
为:
Sw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)T(5)
定义类间散度矩阵
Sb
为:
Sb=(μ0−μ1)(μ0−μ1)T(6)
则
J(w)
可重写为:
J(w)=wTSbwwTSww(7)
然后这就是广义瑞利商的形式,那么如何确定
w
呢?
注意到(7)中分子分母都是关于
w
的二次项,所以(7)的解与
w
大小无关,只与其方向有关,不妨取
wTw=1
,即
w
为标准正交基,(4)等价于
argmaxwwTS−1wSbw s.t. wTw=1(8)
然后这又又又又是一个约束优化问题,拉格朗日乘子法走起来,对应的拉格朗日函数为
L(w,λ)=−wTS−1wSbw+λ(wTw−1)(9)
对
w
求导并令导数等于0可得:
S−1wSbw=λw(10)
和PCA一样的套路,又变成对
S−1wSb
特征分解的问题了。对于二分类来说,
Sbw
的方向恒为
μ0−μ1
,不妨令
Sbw=λ(μ0−μ1)
,代入(10)得:
w=S−1w(μ0−μ1)(11)
所以,对于二分类样本,只要求出原始样本的均值和方差就能确定最佳的投影方向
w
了。
4. 多分类LDA原理
如果是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。优化目标变为:
argmaxwWTS−1wSbW s.t. WTW=1(12)
W
为低维空间基向量组成的矩阵,
W∈Rd×(N−1)
,其中
N
为样本类别数。对于约束优化问题(12),同样利用拉格朗日乘子法可以得到
W
的解是
S−1wSb
的
d′
个最大非零广义特征值所对应的特征向量组成的矩阵,
d′≤N−1
。
5. LDA算法流程
输入:
d
维数据集
X={(xi,yi)}mi=1
,
yi∈{1,2,…,N}
,要降到的维度
d′
输出:降维后的数据集
X′
Step1: 计算类内散度矩阵
Sw
:
Sw=∑i=1N∑x∈Xi(x−μi)(x−μi)T
Step2: 计算类间散度矩阵
Sb
:
Sb=∑i=1Nmi(μi−μ)(μi−μ)T
其中
mi
为第
i
类的样本数目,
μ
为所有样本均值向量
Step3: 计算矩阵
S−1wSb
Step4: 对
S−1wSb
进行奇异值分解,得到奇异值
λi
及其对应的特征向量
wi
,
i=1,2,…,N−1
。
Step5: 取前
d′
大的奇异值对应的特征向量组成投影矩阵
W
Step6: 计算样本集中每个样本
xi
在新的低维空间的投影
zi
:
zi=WTxi
Step7: 得到降维后的样本集
X′={(zi,yi)}mi=1
5. 小结
LDA降维和PCA降维有很多相似之处:
(1) 两者在降维时都使用了特征分解的思想
(2) 两者都假设数据符合高斯分布,因此LDA和PCA都不适合对非高斯分布的样本进行降维
相对于PCA,LDA又有所不同:
(1) LDA是有监督的降维方法,降维过程中可以使用类别的先验知识经验,而PCA不行
(2) LDA选择分类性能最好的投影方向,而PCA选择最大方差的投影方向,因此LDA有过拟合的风险
(3) LDA最多能降到
N−1
的维数,如果降维维度大于
N−1
,则不能使用LDA,而PCA没有这个限制
(4) 当样本分类信息依赖均值时LDA效果较好;依赖方差的时候PCA效果较好