線性判別分析LDA
LDA基礎
LDA是一種監督學習的降維技術,對應着它的數據集中的每個樣本是有類別輸出的。LDA的基本思想是:給定一個訓練樣例集,設法將樣例投影到一條直線上,使得同類樣例的投影點儘可能接近,異類樣例的投影點中心儘可能遠離。也就是“投影后類內方差最小,類間均值最大”。
我們先來看一下下圖對於二分類的情況:
圖中的“+”,“-”分別表示正例和反例,我們想要的就是讓每種類別的投影點儘可能接近,而“+”和“-”的數據中心之間的距離儘可能大。
LDA推導
我們給定數據集D={(xi,yi)}i=1m,yi∈{0,1},定義Nj爲第j類樣本的個數,xj爲第j類樣本的集合,而μj爲第j類樣本的均值向量,∑j
爲第j類樣本的方差,因此原始均值和投影后的均值分別可以表示爲如下的形式:
原始均值:
μi=Ni1∑x∈wix
投影后均值(wi表示第i類,y表示向量x投影后得到的向量):
ui~=Ni1∑x∈wiy
=Ni1∑x∈wiwTx
=wTNi1∑x∈wix
=wTμi
得到了均值之後我們可以得到方差爲:
si~2=∑y∈wi(y−ui~)2
=∑x∈wi(wTx−wTμi)2
=∑x∈wiwT(x−μi)(x−μiT)w
=wTsiw
根據我們LDA的思想,我們要做的事情是“投影后類內方差最小,類間均值最大”,所得的目標函數如下:
J(w)=s1~2+s2~2∣u1~−u2~∣2
上式中,分子表示不同類別均值之差,分母表示不同類別方差之和,因此我們的目標就是最大化J(w)即可。
對於分母:
s1~2+s2~2=wTS1w+wTS2w=wTSww
此時的Sw我們可以定義爲“類內散度矩陣”。
Sw=∑1+∑2
對於分子:
(u1~−u2~)2=(wTμ1−wTμ2)2
=wT(μ1−μ2)(μ1−μ2)Tw
=wTSBw
此時的SB我們可以定義爲“類間散度矩陣”。
SB=(μ1−μ2)(μ1−μ2)T
對應的目標函數我們可以轉化爲:
J(w)=s1~2+s2~2∣u1~−u2~∣2=wTSBwwTSww
此時的J(w)就是我們最大化的目標,可以看到J(w)的分子分母都是關於w的二次項,因此我們的式子只與w的方向有關(w爲投影后直線的方向),不失一般性我們令wTSww=1,則有:
min:−wTSBw (目標)
s.t.:wTSww=1(約束)
根據拉格朗日乘子法,上式等價於 (λ爲拉格朗日乘子):
c(w)=−wTSBw+λ(wTSww−1)
dwdc=−2SBw+2λSww=0
SBw=λSww
我們把SBw=λ(μ1+μ2)帶入可以解得:
w=Sw−1(μ1−μ2)
也就是說我們只要求出原始二類樣本的均值和方差就可以確定最佳的投影方向了。
PCA和LDA
PCA(主成分分析)和LDA(線性判別分析)有很多的相似點,其本質是要將初始樣本映射到維度更低的樣本空間中,但是PCA和LDA的映射目標不一樣:PCA是爲了讓映射後的樣本具有最大的發散性;而LDA是爲了讓映射後的樣本有最好的分類性能。所以說PCA是一種無監督的降維方法,而LDA是一種有監督的降維方法。
LDA總結
LDA算法的主要優點有:
- 在降維過程中可以使用類別的先驗知識經驗,而像PCA這樣的無監督學習則無法使用類別先驗知識。
- LDA在樣本分類信息依賴均值而不是方差的時候,比PCA之類的算法較優。
LDA算法的主要缺點有:
- LDA不適合對非高斯分佈樣本進行降維,PCA也有這個問題。
- LDA降維最多降到類別數k-1的維數,如果我們降維的維度大於k-1,則不能使用LDA。當然目前有一些LDA的進化版算法可以繞過這個問題。
- LDA在樣本分類信息依賴方差而不是均值的時候,降維效果不好。
- LDA可能過度擬合數據。