連載|線性判別分析(LDA)

線性判別分析LDA

LDA基礎

LDA是一種監督學習的降維技術,對應着它的數據集中的每個樣本是有類別輸出的。LDA的基本思想是:給定一個訓練樣例集,設法將樣例投影到一條直線上,使得同類樣例的投影點儘可能接近,異類樣例的投影點中心儘可能遠離。也就是“投影后類內方差最小,類間均值最大”。

我們先來看一下下圖對於二分類的情況:

img

圖中的“+”,“-”分別表示正例和反例,我們想要的就是讓每種類別的投影點儘可能接近,而“+”和“-”的數據中心之間的距離儘可能大。

LDA推導

我們給定數據集D={(xi,yi)}i=1mD=\{{(x_i,y_i)}\}_{i=1}^myi{0,1}y_i\in\{0,1\},定義NjN_j爲第j類樣本的個數,xjx_j爲第j類樣本的集合,而μj\mu_j爲第j類樣本的均值向量,j\sum_j

爲第j類樣本的方差,因此原始均值和投影后的均值分別可以表示爲如下的形式:

原始均值:

μi=1Nixwix\mu_i=\frac{1}{N_i}\sum_{x\in w_i}x

投影后均值(wi表示第i類,y表示向量x投影后得到的向量):

ui~=1Nixwiy\tilde{u_i}=\frac{1}{N_i}\sum_{x\in w_i}y

=1NixwiwTx=\frac{1}{N_i}\sum_{x\in w_i}w^Tx

=wT1Nixwix=w^T\frac{1}{N_i}\sum_{x\in w_i}x

=wTμi=w^T\mu_i

得到了均值之後我們可以得到方差爲:

si~2=ywi(yui~)2\tilde{s_i}^2=\sum_{y\in w_i}(y-\tilde{u_i})^2

=xwi(wTxwTμi)2=\sum_{x\in w_i}(w^Tx-w^T\mu_i)^2

=xwiwT(xμi)(xμiT)w=\sum_{x\in w_i}w^T(x-\mu_i)(x-\mu_i^T)w

=wTsiw=w^Ts_iw

根據我們LDA的思想,我們要做的事情是“投影后類內方差最小,類間均值最大”,所得的目標函數如下:

J(w)=u1~u2~2s1~2+s2~2J(w)=\frac{|\tilde{u_1}-\tilde{u_2}|^2}{\tilde{s_1}^2+\tilde{s_2}^2}

上式中,分子表示不同類別均值之差,分母表示不同類別方差之和,因此我們的目標就是最大化J(w)即可。

對於分母:

s1~2+s2~2=wTS1w+wTS2w=wTSww\tilde{s_1}^2+\tilde{s_2}^2=w^TS_1w+w^TS_2w=w^TS_ww

此時的SwS_w我們可以定義爲“類內散度矩陣”。

Sw=1+2S_w=\sum1+\sum2

對於分子:

(u1~u2~)2=(wTμ1wTμ2)2(\tilde{u_1}-\tilde{u_2})^2=(w^T\mu_1-w^T\mu_2)^2

=wT(μ1μ2)(μ1μ2)Tw=w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw

=wTSBw=w^TS_Bw

此時的SBS_B我們可以定義爲“類間散度矩陣”。

SB=(μ1μ2)(μ1μ2)TS_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T

對應的目標函數我們可以轉化爲:

J(w)=u1~u2~2s1~2+s2~2=wTSwwwTSBwJ(w)=\frac{|\tilde{u_1}-\tilde{u_2}|^2}{\tilde{s_1}^2+\tilde{s_2}^2}=\frac{w^TS_ww}{w^TS_Bw}

此時的J(w)就是我們最大化的目標,可以看到J(w)的分子分母都是關於w的二次項,因此我們的式子只與w的方向有關(w爲投影后直線的方向),不失一般性我們令wTSww=1w^TS_ww=1,則有:

min:wTSBwmin:-w^TS_Bw (目標)

s.t.:wTSww=1s.t.:w^TS_ww=1(約束)

根據拉格朗日乘子法,上式等價於 (λ\lambda爲拉格朗日乘子):

c(w)=wTSBw+λ(wTSww1)c(w)=-w^TS_Bw+\lambda(w^TS_ww-1)

dcdw=2SBw+2λSww=0\frac{dc}{dw}=-2S_Bw+2\lambda S_ww=0

SBw=λSwwS_Bw=\lambda S_ww

我們把SBw=λ(μ1+μ2)S_Bw=\lambda(\mu1+\mu2)帶入可以解得:

w=Sw1(μ1μ2)w=S_w^{-1}(\mu1-\mu2)

也就是說我們只要求出原始二類樣本的均值和方差就可以確定最佳的投影方向了。

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可能過度擬合數據。
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章