PCA的思想
PCA是找出數據裏最主要的方面,用數據裏最主要的方面來代替原始數據。具體的,假如我們的數據集是n維的,共有m個數據(x(1),x(2),...,x(m))(x(1),x(2),...,x(m))。我們希望將這m個數據的維度從n維降到n'維,希望這m個n'維的數據集儘可能的代表原始數據集。我們知道數據從n維降到n'維肯定會有損失,但是我們希望損失儘可能的小。那麼如何讓這n'維的數據儘可能表示原來的數據呢?
我們先看看最簡單的情況,也就是n=2,n'=1,也就是將數據從二維降維到一維。數據如下圖。我們希望找到某一個維度方向,它可以代表這兩個維度的數據。圖中列了兩個向量方向,u1u1和u2u2,那麼哪個向量可以更好的代表原始數據集呢?從直觀上也可以看出,u1u1比u2u2好。
可以有兩種解釋,第一種解釋是樣本點到這個直線的距離足夠近,第二種解釋是樣本點在這個直線上的投影能儘可能的分開。
假如我們把n'從1維推廣到任意維,則我們的希望降維的標準爲:樣本點到這個超平面的距離足夠近,或者說樣本點在這個超平面上的投影能儘可能的分開。
基於上面的兩種標準,我們可以得到PCA的兩種等價推導。
PCA算法總結
這裏對PCA算法做一個總結。作爲一個非監督學習的降維方法,它只需要特徵值分解,就可以對數據進行壓縮,去噪。因此在實際場景應用很廣泛。爲了克服PCA的一些缺點,出現了很多PCA的變種,比如第六節的爲解決非線性降維的KPCA,還有解決內存限制的增量PCA方法Incremental PCA,以及解決稀疏數據降維的PCA方法Sparse PCA等。
PCA算法的主要優點有:
1)僅僅需要以方差衡量信息量,不受數據集以外的因素影響。
2)各主成分之間正交,可消除原始數據成分間的相互影響的因素。
3)計算方法簡單,主要運算是特徵值分解,易於實現。
PCA算法的主要缺點有:
1)主成分各個特徵維度的含義具有一定的模糊性,不如原始樣本特徵的解釋性強。
2)方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對後續數據處理有影響。
LDA的思想
LDA是一種監督學習的降維技術,也就是說它的數據集的每個樣本是有類別輸出的。這點和PCA不同。PCA是不考慮樣本類別輸出的無監督降維技術。LDA的思想可以用一句話概括,就是“投影后類內方差最小,類間方差最大”。 我們要將數據在低維度上進行投影,投影后希望每一種類別數據的投影點儘可能的接近,而不同類別的數據的類別中心之間的距離儘可能的大。
假設我們有兩類數據 分別爲紅色和藍色,如下圖所示,這些數據特徵是二維的,我們希望將這些數據投影到一維的一條直線,讓每一種類別數據的投影點儘可能的接近,而紅色和藍色數據中心之間的距離儘可能的大。
從直觀上可以看出,右圖要比左圖的投影效果好,因爲右圖的黑色數據和藍色數據各個較爲集中,且類別之間的距離明顯。左圖則在邊界處數據混雜。以上就是LDA的主要思想了,當然在實際應用中,我們的數據是多個類別的,我們的原始數據一般也是超過二維的,投影后的也一般不是直線,而是一個低維的超平面
LDA算法總結
LDA算法既可以用來降維,又可以用來分類,但是目前來說,主要還是用於降維。在我們進行圖像識別圖像識別相關的數據分析時,LDA是一個有力的工具。下面總結下LDA算法的優缺點。
LDA算法的主要優點有:
1)在降維過程中可以使用類別的先驗知識經驗,而像PCA這樣的無監督學習則無法使用類別先驗知識。
2)LDA在樣本分類信息依賴均值而不是方差的時候,比PCA之類的算法較優。
LDA算法的主要缺點有:
1)LDA不適合對非高斯分佈樣本進行降維,PCA也有這個問題。
2)LDA降維最多降到類別數k-1的維數,如果我們降維的維度大於k-1,則不能使用LDA。當然目前有一些LDA的進化版算法可以繞過這個問題。
3)LDA在樣本分類信息依賴方差而不是均值的時候,降維效果不好。
4)LDA可能過度擬合數據。
PCA和LDA的相同點
- PCA和LDA都是經典的降維算法;
- PCA和LDA都假設數據是符合高斯分佈的;
- PCA和LDA都利用了矩陣特徵分解的思想。
PCA和LDA的不同點
- PCA是無監督(訓練樣本無標籤)的,LDA是有監督(訓練樣本有標籤)的;
- PCA是去掉原始數據冗餘的維度,LDA是選擇一個最佳的投影方向,使得投影后相同類別的數據分佈緊湊,不同類別的數據儘量相互遠離。
- LDA最多可以降到k-1維(k是訓練樣本的類別數量,k-1是因爲最後一維的均值可以由前面的k-1維的均值表示);
- LDA可能會過擬合數據。
LDA除了可以用於降維,還可以用於分類。
LDA選擇分類性能最好的投影方向,而PCA選擇樣本點投影具有最大方差的方向。