線性判別分析(Linear Discriminant Analysis,LDA)是一種有監督學習算法,同時經常被用來對數據進行降維。
線性判別分析
Fisher的基本思想是:類內小,類間大。也就是說,我們要讓屬於同一類的樣本映射到某一條直線上後的距離越小越好,而不同類樣本之間的距離要越大越好。所以我們需要訓練這樣一條直線,把p維的樣本數據都投影到一個1維的方向,使得不同的樣本在降維後的一維空間內具有“類內小,類間大”的結果,從而很好地將兩類數據分開。
在預測時,將待預測數據投影到上面學習到的直線上,根據投影點的位置來判斷所屬於的類別。
假設我們找到了最好的投影方向w,如果不對其做限定的話,這樣的w可以有無數條,所以我們限定∣∣w∣∣=1。將樣本點xi投影到向量w上,得到新的點zi,有
zi=∣xi∣cosθ=∣xi∣∣w∣cosθ=wTxi..........(1)
則其總體均值爲
zˉ=N1i=1∑NwTxi..........(2)
總體方差爲
Sz=N1i=1∑N(wTxi−zˉ)(wTxi−zˉ)T..........(3)
假設兩類樣本分別用c1和c2表示,則
zˉ1=N11i=1∑N1wTxi..........(4)zˉ2=N21i=1∑N2wTxi..........(5)S1=N11i=1∑N1(wTxi−zˉ1)(wTxi−zˉ1)T..........(6)S2=N21i=1∑N2(wTxi−zˉ2)(wTxi−zˉ2)T..........(7)
我們可以使兩類樣本的均值差最大來表示“類間大”,兩類樣本的方差和最小來表示“類內小”。因此我們可以將其構造成一個目標函數:
J(w)=(S1+S2)(zˉ1−zˉ2)2..........(8)
則有
w^=argwmaxJ(w)=argwmax(S1+S2)(zˉ1−zˉ2)2=argwmax(N11i=1∑N1(wTxi−zˉ1)(wTxi−zˉ1)T+N21i=1∑N2(wTxi−zˉ2)(wTxi−zˉ2)T)(N11i=1∑N1wTxi−N21i=1∑N2wTxi)2=argwmaxN11i=1∑N1wT(xi−xˉc1)(xi−xˉc1)Tw+N21i=1∑N2wT(xi−xˉc2)(xi−xˉc2)w(wT(N11i=1∑N1xi−N21i=1∑N2xi))2=argwmaxwTSc1w+wTSc2w(wT(xˉc1−xˉc2))2=argwmaxwT(Sc1+Sc2)wwT(xˉc1−xˉc2)(xˉc1−xˉc2)Tw
令
Sb=(xˉc1−xˉc2)(xˉc1−xˉc2)T..........(9)Sw=(Sc1+Sc2)..........(10)
Sb稱爲類間散度矩陣,Sw稱爲類內散度矩陣,則
J(w)=wTSwwwTSbw.........(11)
上式爲廣義瑞利熵的形式,利用廣義瑞利商性質J(w)最大值爲矩陣Sb−1/2SwSb−1/2的最大特徵值,而對應的w爲的最大特徵值對應的特徵向量。
也可以不考慮廣義瑞利熵,式子11對w求偏導,並令導數爲0 ,有
(wTSww)Sbw=(wTSbw)Sww..........(12)
因爲在簡化的二分類問題中,wTSbw和wTSww都是實數,所以有
Sbw=J(w)Sww
整理得
Sw−1Sbw=J(w)w..........(13)
從式子13可以看出,我們要最大化的目標j(w)對應了矩陣Sw−1Sb的最大特徵值,而投影方向就是這個特徵值對應的特徵向量。
二分類的LDA到這裏就結束了。而如果擴展到N分類呢?擴展到N分類後,我們希望將特徵降到d維,讓投影后的樣本點仍然滿足最大化類間距離和最小化類內距離。類內散度矩陣Sw擴展到n維後仍然滿足定義,而類間散度矩陣Sb則不滿足,我們需要做一些小小的變化。定義全局散度矩陣
St=i=1∑n(xi−μ)(xi−μ)T
其中μ是N類樣本中心的均值。重新定義St=Sb+Sw,則
Sb=St−Sw=i=1∑n(xi−μ)(xi−μ)T−x∈Ci∑(xi−μi)(xi−μi)T=j=1∑N(x∈Ci∑(xi−μ)(xi−μ)T−x∈Ci∑(xi−μi)(xi−μi)T)=j=1∑Nmj(μj−μ)(μj−μ)T
其中mj是第j個類別中的樣本個數,N是總類別數。根據LDA,最大化目標爲
J(W)=tr(WTSwW)tr(WTSbW),s.t.WTW=I
最大化J(W)對應了以下廣義特徵值的求解,即
Sbw=λSww
通過求解Sw−1Sb矩陣的前k個最大特徵向量組成的矩陣,得到W,從而能夠將原始的特徵空間投影到新的d維空間中。
LDA與PCA
- PCA選取的是投影后數據方差最大的方向,由於PCA是無監督學習,他假設方差越大,信息越多,使用主成分來達到降維。
- LDA選擇的是投影后類內方差小,類間方差大的方向,屬於有監督學習。
- 從應用的角度,對無監督的學習應該使用PCA進行降維,對有監督的則應用LDA。