線性判別分析(LDA)
LDA思想總結
線性判別分析(Linear Discriminant Analysis,LDA)是一種經典的降維方法。和主成分分析PCA不考慮樣本類別輸出的無監督降維技術不同,LDA是一種監督學習的降維技術,數據集的每個樣本有類別輸出。
LDA分類思想簡單總結如下:
- 多維空間中,數據處理分類問題較爲複雜,LDA算法將多維空間中的數據投影到一條直線上,將d維數據轉化成1維數據進行處理。
- 對於訓練數據,設法將多維數據投影到一條直線上,同類數據的投影點儘可能接近,異類數據點儘可能遠離。
- 對數據進行分類時,將其投影到同樣的這條直線上,再根據投影點的位置來確定樣本的類別。
如果用一句話概括LDA思想,即“投影后類內方差最小,類間方差最大”。
圖解LDA核心思想
假設有紅、藍兩類數據,這些數據特徵均爲二維,如下圖所示。我們的目標是將這些數據投影到一維,讓每一類相近的數據的投影點儘可能接近,不同類別數據儘可能遠,即圖中紅色和藍色數據中心之間的距離儘可能大。
左圖和右圖是兩種不同的投影方式。
左圖思路:讓不同類別的平均點距離最遠的投影方式。
右圖思路:讓同類別的數據捱得最近的投影方式。
從上圖直觀看出,右圖紅色數據和藍色數據在各自的區域來說相對集中,根據數據分佈直方圖也可看出,所以右圖的投影效果好於左圖,左圖中間直方圖部分有明顯交集。
以上例子是基於數據是二維的,分類後的投影是一條直線。如果原始數據是多維的,則投影后的分類面是一低維的超平面。
二類LDA算法原理
輸入:數據集 D={(x1,y1),(x2,y2),...,(xm,ym)},其中樣本 xi 是n維向量,yiϵ{0,1},降維後的目標維度 d。定義
Nj(j=0,1) 爲第 j 類樣本個數;
Xj(j=0,1) 爲第 j 類樣本的集合;
uj(j=0,1) 爲第 j 類樣本的均值向量;
∑j(j=0,1) 爲第 j 類樣本的協方差矩陣。
其中
uj=Nj1xϵXj∑x(j=0,1),j∑=xϵXj∑(x−uj)(x−uj)T(j=0,1)
假設投影直線是向量 w,對任意樣本 xi,它在直線 w上的投影爲 wTxi,兩個類別的中心點 u0, $u_1 $在直線 w 的投影分別爲 wTu0 、wTu1。
LDA的目標是讓兩類別的數據中心間的距離 ∥wTu0−wTu1∥22 儘量大,與此同時,希望同類樣本投影點的協方差wT∑0w、wT∑1w 儘量小,最小化 wT∑0w−wT∑1w 。
定義
類內散度矩陣
Sw=0∑+1∑=xϵX0∑(x−u0)(x−u0)T+xϵX1∑(x−u1)(x−u1)T
類間散度矩陣 Sb=(u0−u1)(u0−u1)T
據上分析,優化目標爲
argmaxwJ(w)=wT∑0w+wT∑1w∥wTu0−wTu1∥22=wT(∑0+∑1)wwT(u0−u1)(u0−u1)Tw=wTSwwwTSbw
根據廣義瑞利商的性質,矩陣 Sw−1Sb 的最大特徵值爲 J(w) 的最大值,矩陣 Sw−1Sb 的最大特徵值對應的特徵向量即爲 w。
LDA算法流程總結
LDA算法降維流程如下:
輸入:數據集 D={(x1,y1),(x2,y2),...,(xm,ym)},其中樣本 xi 是n維向量,yiϵ{C1,C2,...,Ck},降維後的目標維度 d 。
輸出:降維後的數據集 D 。
步驟:
- 計算類內散度矩陣 Sw。
- 計算類間散度矩陣 Sb 。
- 計算矩陣 Sw−1Sb 。
- 計算矩陣 Sw−1Sb 的最大的 d 個特徵值。
- 計算 d 個特徵值對應的 d 個特徵向量,記投影矩陣爲 W 。
- 轉化樣本集的每個樣本,得到新樣本 Pi=WTxi 。
- 輸出新樣本集 D={(p1,y1),(p2,y2),...,(pm,ym)}
LDA和PCA區別
異同點 |
LDA |
PCA |
相同點 |
1. 兩者均可以對數據進行降維; 2. 兩者在降維時均使用了矩陣特徵分解的思想; 3. 兩者都假設數據符合高斯分佈; |
|
不同點 |
有監督的降維方法; |
無監督的降維方法; |
|
降維最多降到k-1維; |
降維多少沒有限制; |
|
可以用於降維,還可以用於分類; |
只用於降維; |
|
選擇分類性能最好的投影方向; |
選擇樣本點投影具有最大方差的方向; |
|
更明確,更能反映樣本間差異; |
目的較爲模糊; |
LDA優缺點
優缺點 |
簡要說明 |
優點 |
1. 可以使用類別的先驗知識; 2. 以標籤、類別衡量差異性的有監督降維方式,相對於PCA的模糊性,其目的更明確,更能反映樣本間的差異; |
缺點 |
1. LDA不適合對非高斯分佈樣本進行降維; 2. LDA降維最多降到分類數k-1維; 3. LDA在樣本分類信息依賴方差而不是均值時,降維效果不好; 4. LDA可能過度擬合數據。 |
主成分分析(PCA)
主成分分析(PCA)思想總結
- PCA就是將高維的數據通過線性變換投影到低維空間上去。
- 投影思想:找出最能夠代表原始數據的投影方法。被PCA降掉的那些維度只能是那些噪聲或是冗餘的數據。
- 去冗餘:去除可以被其他向量代表的線性相關向量,這部分信息量是多餘的。
- 去噪聲,去除較小特徵值對應的特徵向量,特徵值的大小反映了變換後在特徵向量方向上變換的幅度,幅度越大,說明這個方向上的元素差異也越大,要保留。
- 對角化矩陣,尋找極大線性無關組,保留較大的特徵值,去除較小特徵值,組成一個投影矩陣,對原始樣本矩陣進行投影,得到降維後的新樣本矩陣。
- 完成PCA的關鍵是——協方差矩陣。協方差矩陣,能同時表現不同維度間的相關性以及各個維度上的方差。協方差矩陣度量的是維度與維度之間的關係,而非樣本與樣本之間。
- 之所以對角化,因爲對角化之後非對角上的元素都是0,達到去噪聲的目的。對角化後的協方差矩陣,對角線上較小的新方差對應的就是那些該去掉的維度。所以我們只取那些含有較大能量(特徵值)的維度,其餘的就舍掉,即去冗餘。
圖解PCA核心思想
PCA可解決訓練數據中存在數據特徵過多或特徵累贅的問題。核心思想是將m維特徵映射到n維(n < m),這n維形成主元,是重構出來最能代表原始數據的正交特徵。
假設數據集是m個n維,(x(1),x(2),⋯,x(m))。如果n=2,需要降維到n′=1,現在想找到某一維度方向代表這兩個維度的數據。下圖有u1,u2兩個向量方向,但是哪個向量纔是我們所想要的,可以更好代表原始數據集的呢?
從圖可看出,u1比u2好,爲什麼呢?有以下兩個主要評價指標:
- 樣本點到這個直線的距離足夠近。
- 樣本點在這個直線上的投影能儘可能的分開。
如果我們需要降維的目標維數是其他任意維,則:
- 樣本點到這個超平面的距離足夠近。
- 樣本點在這個超平面上的投影能儘可能的分開。
PCA算法推理
下面以基於最小投影距離爲評價指標推理:
假設數據集是m個n維,(x(1),x(2),...,x(m)),且數據進行了中心化。經過投影變換得到新座標爲 w1,w2,...,wn,其中 w 是標準正交基,即 ∥w∥2=1,wiTwj=0。
經過降維後,新座標爲 {w1,w2,...,wn},其中 n′ 是降維後的目標維數。樣本點 x(i) 在新座標系下的投影爲 z(i)=(z1(i),z2(i),...,zn′(i)),其中 zj(i)=wjTx(i) 是 x(i) 在低維座標系裏第 j 維的座標。
如果用 z(i) 去恢復 x(i) ,則得到的恢復數據爲 x(i)=∑j=1n′xj(i)wj=Wz(i),其中 W爲標準正交基組成的矩陣。
考慮到整個樣本集,樣本點到這個超平面的距離足夠近,目標變爲最小化 ∑i=1m∥x^(i)−x(i)∥22 。對此式進行推理,可得:
i=1∑m∥x^(i)−x(i)∥22=i=1∑m∥Wz(i)−x(i)∥22=i=1∑m(Wz(i))T(Wz(i))−2i=1∑m(Wz(i))Tx(i)+i=1∑m(x(i))Tx(i)=i=1∑m(z(i))T(z(i))−2i=1∑m(z(i))Tx(i)+i=1∑m(x(i))Tx(i)=−i=1∑m(z(i))T(z(i))+i=1∑m(x(i))Tx(i)=−tr(WT(i=1∑mx(i)(x(i))T)W)+i=1∑m(x(i))Tx(i)=−tr(WTXXTW)+i=1∑m(x(i))Tx(i)
在推導過程中,分別用到了 x(i)=Wz(i) ,矩陣轉置公式 (AB)T=BTAT,WTW=I,z(i)=WTx(i) 以及矩陣的跡,最後兩步是將代數和轉爲矩陣形式。
由於 W 的每一個向量 wj 是標準正交基,∑i=1mx(i)(x(i))T 是數據集的協方差矩陣,∑i=1m(x(i))Tx(i) 是一個常量。最小化 ∑i=1m∥x^(i)−x(i)∥22 又可等價於
Wargmin−tr(WTXXTW)s.t.WTW=I
利用拉格朗日函數可得到
J(W)=−tr(WTXXTW)+λ(WTW−I)
對 W 求導,可得 −XXTW+λW=0 ,也即 XXTW=λW 。 XXT 是 n′ 個特徵向量組成的矩陣,λ 爲XXT 的特徵值。W 即爲我們想要的矩陣。
對於原始數據,只需要 z(i)=WTX(i) ,就可把原始數據集降維到最小投影距離的 n′ 維數據集。
基於最大投影方差的推導,這裏就不再贅述,有興趣的同仁可自行查閱資料。
PCA算法流程總結
輸入:n 維樣本集 D=(x(1),x(2),...,x(m)) ,目標降維的維數 n′ 。
輸出:降維後的新樣本集 D′=(z(1),z(2),...,z(m)) 。
主要步驟如下:
- 對所有的樣本進行中心化,x(i)=x(i)−m1∑j=1mx(j) 。
- 計算樣本的協方差矩陣 XXT 。
- 對協方差矩陣 XXT 進行特徵值分解。
- 取出最大的 n′ 個特徵值對應的特徵向量 {w1,w2,...,wn′} 。
- 標準化特徵向量,得到特徵向量矩陣 W 。
- 轉化樣本集中的每個樣本 z(i)=WTx(i) 。
- 得到輸出矩陣 D′=(z(1),z(2),...,z(n)) 。
注:在降維時,有時不明確目標維數,而是指定降維到的主成分比重閾值 k(kϵ(0,1]) 。假設 n 個特徵值爲 λ1⩾λ2⩾...⩾λn ,則 n′ 可從 ∑i=1n′λi⩾k×∑i=1nλi 得到。
PCA算法主要優缺點
優缺點 |
簡要說明 |
優點 |
1. 僅僅需要以方差衡量信息量,不受數據集以外的因素影響。 2.各主成分之間正交,可消除原始數據成分間的相互影響的因素。3. 計算方法簡單,主要運算是特徵值分解,易於實現。 |
缺點 |
1.主成分各個特徵維度的含義具有一定的模糊性,不如原始樣本特徵的解釋性強。2. 方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對後續數據處理有影響。 |
降維的必要性及目的
降維的必要性:
- 多重共線性和預測變量之間相互關聯。多重共線性會導致解空間的不穩定,從而可能導致結果的不連貫。
- 高維空間本身具有稀疏性。一維正態分佈有68%的值落於正負標準差之間,而在十維空間上只有2%。
- 過多的變量,對查找規律造成冗餘麻煩。
- 僅在變量層面上分析可能會忽略變量之間的潛在聯繫。例如幾個預測變量可能落入僅反映數據某一方面特徵的一個組內。
降維的目的:
- 減少預測變量的個數。
- 確保這些變量是相互獨立的。
- 提供一個框架來解釋結果。相關特徵,特別是重要特徵更能在數據中明確的顯示出來;如果只有兩維或者三維的話,更便於可視化展示。
- 數據在低維下更容易處理、更容易使用。
- 去除數據噪聲。
- 降低算法運算開銷。
KPCA與PCA的區別
應用PCA算法前提是假設存在一個線性超平面,進而投影。那如果數據不是線性的呢?該怎麼辦?這時候就需要KPCA,數據集從 n 維映射到線性可分的高維 N>n,然後再從 N 維降維到一個低維度 n′(n′<n<N) 。
KPCA用到了核函數思想,使用了核函數的主成分分析一般稱爲核主成分分析(Kernelized PCA, 簡稱KPCA)。
假設高維空間數據由 n 維空間的數據通過映射 ϕ 產生。
n 維空間的特徵分解爲:
i=1∑mx(i)(x(i))TW=λW
其映射爲
i=1∑mϕ(x(i))ϕ(x(i))TW=λW
通過在高維空間進行協方差矩陣的特徵值分解,然後用和PCA一樣的方法進行降維。由於KPCA需要核函數的運算,因此它的計算量要比PCA大很多。