標籤:lda pca比較
主要是參考了文章
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html
http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024389.html
上面的三篇部落格總結的已經非常好:
這裡再將最重要的部分提出來總結一下:
LDA的原理是,將帶上標籤的資料(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按類別區分,一簇一簇的情況,相同類別的點,將會在投影后的空間中更接近。要說明白LDA,首先得弄明白線性分類器(Linear Classifier):因為LDA是一種線性分類器。對於K-分類的一個分類問題,會有K個線性函數:
當滿足條件:對於所有的j,都有Yk > Yj,的時候,我們就說x屬於類別k。對於每一個分類,都有一個公式去算一個分值,在所有的公式得到的分值中,找一個最大的,就是所屬的分類了。
上式實際上就是一種投影,是將一個高維的點投影到一條高維的直線上,LDA最求的目標是,給出一個標註了類別的資料集,投影到了一條直線之後,能夠使得點盡量的按類別區分開,當k=2即二分類問題的時候,如所示:
當x是二維的,我們就是要找一條直線(方向為w)來做投影,然後尋找最能使樣本點分離的直線。如:
從直觀上來看,右圖比較好,可以很好地將不同類別的樣本點分離。
計算過程不再講解:主要是滿足一個原則:
我們分類的目標是,使得類別內的點距離越近越好(集中),類別間的點越遠越好。
拉格朗日乘子法的限制條件,帶入得到:w是對應的低維的投影矩陣,Sb表示的未經處理資料類別中心點之間的距離,Sw表示的各個類別中資料點與其中心點的距離平方和
這樣的式子就是一個求特徵值的問題了。
對於N(N>2)分類的問題,我就直接寫出下面的結論了:對於多類別的情況Sw並沒有發生改變,Sb因為多類別,是利用全部資料算出來一個中心點計算距離平方和獲得
PCA有很多種計算的方法,利用最大化方差,最小化損失法是利用了特徵值求解的方法,和LDA相似
如果利用特徵值分解,那麼就是類似於SVD
對比一下PCA和LDA:
PCA與LDA,兩者的思想和計算方法非常類似,但是一個是作為獨立的演算法存在,另一個更多的用於資料的預先處理的工作。
LDA的執行個體:
PCA與LDA的降維對比:
PCA選擇樣本點投影具有最大方差的方向,LDA選擇分類效能最好的方向。
LDA既然叫做線性判別分析,應該具有一定的預測功能,比如新來一個範例x,如何確定其類別?
拿二值分來來說,我們可以將其投影到直線上,得到y,然後看看y是否在超過某個閾值y0,超過是某一類,否則是另一類。而怎麼尋找這個y0呢?
看
根據中心極限定理,獨立同分布的隨機變數和符合高斯分布,然後利用極大似然估計求
然後用決策理論裡的公式來尋找最佳的y0,詳情請參閱PRML。
這是一種可行但比較繁瑣的選取方法,可以看第7節(一些問題)來得到簡單的答案。
5. 使用LDA的一些限制
1、 LDA至多可產生C-1維子空間(這裡應該是因為在多類別中計算特徵變數的前提是Sb可逆,所以對秩有一定的要求)
LDA降維後的維度區間在[1,C-1],與原始特徵數n無關,對於二值分類,最多投影到1維。
2、 LDA不適合對非高斯分布樣本進行降維。
中紅色地區表示一類樣本,藍色地區表示另一類,由於是2類,所以最多投影到1維上。不管在直線上怎麼投影,都難使紅色點和藍色點內部凝聚,類間分離。
3、LDA在樣本分類資訊依賴方差而不是均值時,效果不好。
中,樣本點依靠方差資訊進行分類,而不是均值資訊。LDA不能夠進行有效分類,因為LDA過度依靠均值資訊。
4、 LDA可能過度學習資料。
LDA演算法總結