以前lda是用來分類的,pca是用來降維的。pca的降維是為了減少後續計算量,本身對於區分不同的類的能力並沒有提公升。pca是無監督的,而lda是能把不同的類往乙個最佳的方向去投影,從而使兩類之間的距離最大,達到易於區分的目的,lda是有監督。下面這篇博文很好的講述了lda的演算法的原理,很值得一讀。
特徵選擇(亦即降維)是資料預處理中非常重要的乙個步驟。對於分類來說,特徵選擇可以從眾多的特徵中選擇對分類最重要的那些特徵,去除原資料中的噪音。主成分分析(pca)與線性判別式分析(lda)是兩種最常用的特徵選擇演算法。關於pca的介紹,可以見我的另一篇博文。這裡主要介紹線性判別式分析(lda),主要基於fisher discriminant analysis with kernals[1]和fisher linear discriminant analysis[2]兩篇文獻。
lda與pca的一大不同點在於,lda是有監督的演算法,而pca是無監督的,因為pca演算法沒有考慮資料的標籤(類別),只是把原資料對映到一些方差比較大的方向(基)上去而已。而lda演算法則考慮了資料的標籤。文獻[2]中舉了乙個非常形象的例子,說明了在有些情況下,pca演算法的效能很差,如下圖:
lda演算法會考慮到資料的類別屬性,給定兩個類別c1、c2,我們希望找到乙個向量ω,當資料對映到ω的方向上時,來自兩個類的資料盡可能的分開,同乙個類內的資料盡可能的緊湊。資料的對映公式為:z=ωtx, 其中z是資料x到ω上的投影,因而也是乙個d維到1維的維度歸約。
令m1和m1分別表示c1類資料投影之前個投影之後的均值,易知m1=ωt
m1,同理m2=ωt
m2令s1
2和s2
2分別表示c1和c2類資料在投影之後的散布(scatter),亦即s1
2=∑(ωtxt-m1)2rt,s2
2=∑(ωtxt-m2)2(1-rt)其中如果xt
∈c1,則rt=1,否則rt=0。
我們希望|m1-m2|盡可能的大,而s1
2+s2
2盡可能的小,fisher線性判別式就是最大化下面式子的ω:
j(ω)=(m1-m2)2/(s1
2+s2
2) 式子-1
改寫式子-1中的分子: (m1-m2)2= (ωt
m1-ωt
m2)2=ωt(m1
-m2)(m1
-m2)tω=ωtsbω
其中sb=(m1
-m2)(m1
-m2)t 式子-2
是類間散布矩陣(between class scatter matrix)。
改寫式子-1中的分母:
∑(ωtxt-m1)2rt=∑ωt(xt-m
1)(xt-m
1)tωrt=ωt
s1ω, 其中s
1=∑rt(xt-m
1)(xt-m
1)t是c1的類內散布矩陣(within class scatter matrix)。
令sw=s
1+s2,是類內散布的總和,則s1
2+s2
2=ωt
swω。
所以式子-1可以改寫為:
j(ω)=(ωt
sbω)/(ωt
swω) 式子-3
我們只需要使式子-3對於ω求導,然後使導數等於0,便可以求出ω的值:ω=cs
w-1(m1
-m2),其中c是乙個引數,我們只對ω的方向感興趣,所以c可以取值為1.
另外,最後求得的 j(ω)的值等於λk,λk是sw-1
sb的最大的特徵值,而ω則是sw-1
sb的最大特徵值所對應的特徵向量。
最後有一些關於lda演算法的討論,出自文獻[1]:
1. fisher lda對資料的分布做了一些很強的假設,比如每個類的資料都是高斯分布,各個類的協方差相等。雖然這些強假設很可能在實際資料中並不滿足,但是fisher lda已經被證明是非常有效地降維演算法,其中的原因是線性模型對於噪音的魯棒性比較好,不容易過擬合,缺點是模型簡單,表達能力不強,為了增強fisher lda演算法的表達能力,可以引入核函式,參見我的另外一篇部落格機器學習-核fisher lda演算法。
2. 準確的估計資料的散布矩陣是非常重要的,很可能會有較大的偏置。用式子-2進行估計在樣本資料比較少(相對於維數來說)時會產生較大的變異性。
參考文獻:
[1]
fisher discriminant analysis with kernals. sebastian mika, gunnar ratsch, jason weston, bernhadr scholkopf, klaus-robert muller.
[2]
fisher linear discriminant analysis. max welling.
[3] 機器學習導論。 ethem alpaydin
LDA 線性判別式分析
線性判別式分析 linear discriminant analysis 簡稱為lda。也稱為fisher線性判別 fisher linear discriminant,fld 是模式識別的經典演算法,在1996年由belhumeur引入模式識別和人工智慧領域。基本思想是將高維的模式樣本投影到最佳鑑...
廣義瑞利商 機器學習降維之線性判別模型 LDA
1.lda簡介 線性判別分析 linear discriminant analysis,lda 是一種監督學習的降維方法,也就是說資料集的每個樣本是有類別輸出。和之前介紹的機器學習降維之主成分分析 pca 方法不同,pca是不考慮樣本類別輸出的無監督學習方法。lda的原理簡單來說就是將帶上標籤的資料...
資料降維之特徵選擇 Filter(過濾式)
特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值 也不改變值,但是選擇後的特徵維數肯 定比選擇前小,畢竟我們只選擇了其中的一部分特徵。初始化variancethreshlod,指定閥值方差 呼叫fit transform from sklearn.fe...