1. 程式人生 > >特徵變換以及維度下降——Linear Discriminant Analysis(一)

特徵變換以及維度下降——Linear Discriminant Analysis(一)

1.LDA概述

線性判別分析(Linear discriminant analysis, LDA),是一種監督學習演算法,也叫做Fisher線性判別(Fisher Linear Discriminant, FLD),是模式識別的經典演算法,它是在1996年由Belhumeur引入模式識別和人工智慧領域的。線性判別分析的基本思想是將高維的模式樣本投影到最佳鑑別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間有最佳的可分離性。因此,它是一種有效的特徵提取方法。

2.LDA原理

LDA的原理是,將帶上標籤的資料(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按類別區分,一簇一簇的情況,相同類別的點,將會在投影后的空間中更接近。


3.Linear discriminant analysis(二類情況)

給定N個d維的樣本(i從1到N),其中,有N1個樣例屬於類別W1,有N2個樣例屬於類別W2N1+N2=N)。現在我們覺得原始特徵數太多,想將d維特徵降到只有一維,而又能保證類別能夠“清晰”地反映在低維資料上,也就這一維就能決定每個樣例的類別。降維函式(或者叫投影函式)是(x為d維,w為d維)最後我們就根據每個樣例的y值來判斷它屬於哪一類。這裡的y值如果只考慮二值分類的情況,y=1或y=0,而y值又是x投影到直線上的點到原點的距離。

如,當x是二維的,我們就要找到一條直線來做投影,然後尋找最能使樣本點分離的直線。


顯然,從直觀上看,右圖的效果比較好,可以很好的將不同類別的樣本點分離。

下面,我們就要找到這個最佳的w,使得樣例對映到y後最易於區分。

首先,我們尋找每類樣例的均值(中心點),這裡只有兩類。

(1)

由於x到w投影后的樣本點均值為:

(2)

由此可知,投影后的均值也就是樣本中心點的投影。

所謂最佳直線或是最佳的方向(w),就是能夠使投影后的兩類樣本的中心點儘量分離的直線。

(3)

所以我們希望,J(w)越大越好。

但是單純考慮J(w)是不行的,因為:


圖中,樣本點分佈在兩個不同顏色的橢圓裡,投影到橫軸x1可以獲得最大的中心點間距,但是由於有所重疊,x1不能分離樣本點。投影到縱軸x2上,雖然樣本點中心間距較小,但是能夠分離樣本點。因此,我們還需要考慮樣本點投影后的內部方差,方差越小越好。

我們使用另外一個度量值,稱作雜湊值(scatter)。

(4)

上式子其實就是一個少除以樣本數量的方差值,雜湊值的幾何意義是樣本點的密集程度,值越大,越分散,值越小,越集中。

而我們想要的投影后的樣本點的樣子是:不同累唄的樣本點越分開越好,同類的越聚集越好,也就是均值差越大越好,雜湊值越小越好。所以,我們使用J(w)以及S來度量,最終度量公式為:

(5)

所以我們只需要J(w)最大。

我們把雜湊值公式展開:

(6)

然後我們定義上式中間的部分:

(7)

上式的就是少除以樣本數的協方差矩陣,稱為雜湊矩陣(scatter matrices)

下面:

(8)

Sw稱為類內雜湊矩陣(within-class scatter matrix)

然後我們回到(6)式中,使用(7)替換中間部分,得到:

(9)

然後展開式子:

(10)

SB稱為類間雜湊矩陣(between-class scatter matrix),是兩個向量的內積,雖然是個矩陣,但是秩為1。

最終的J(w)表示為:

(11)

在我們求導之前,需要對分母進行歸一化,因為不做歸一的話,w擴大任何倍,都成立,我們就無法確定w。因此我們打算令,那麼加入拉格朗日乘子後,求導:

(12)

其中用到了矩陣微積分,求導時可以簡單地把當做對待。

如果Sw可逆,得:

(13)

所以,w就是的特徵向量了。

這個公式稱為Fisher linear discrimination。

另外,W也可以通過以下方式求出:

(14)

至此,我們只需要求出原始樣本的均值和方差就可以求出最佳的方向w,這就是Fisher於1936年提出的線性判別分析。

所以上面二維樣本的投影結果圖為:


之後我們會繼續介紹多類的情況。