機器學習之LDA降維


1. PCA缺點

在上篇介紹PCA的文章中有一句話是:

PCA是一種能夠極大提升無監督特征學習速度的數據降維算法

這里很明顯的說明,PCA適用於非監督學習的數據降維,顯而易見,在進行數據降維的時候,我們並沒有考慮數據的類別信息,僅僅是針對數據的特征來進行學習.當已知數據的類別時,在某些情況下,PCA的效果將會非常差.例如:

如上圖所示,如果使用PCA進行降維,將會映射到Y軸上(接近Y軸,實際的基為[-0.00277403 -0.99999615]),此時數據將變得不可分.如下圖所示:

很明顯,此時兩類數據基本上重疊在一起,無法線性分割.PCA的核心思想是將數據投影到方差最大化的方向,但是方差最大的方向不一定使數據線性可分,PCA之后再使用分類算法將無法獲得較好的效果.

2. 線性判別式分析

Fisher’s Linear Discriminant(FLD)和Linear Discriminant Analysis(LDA)是統計學上的經典分析方法,兩種不同之處在於LDA比FLD多了一些關於變量分布和協方差的假設.為統一,不再區分FLD和LDA,統稱LDA. LDA既可以用來線性分類,也可以用來單純的對數據進行降維.目前在醫學的患者疾病分級,經濟學的市場定位,產品管理,市場研究,人臉識別以及機器學習等領域有廣泛應用.相較於FLD,LDA假設:
1. 樣本數據服從正態分布
2. 各類的協方差相等

雖然這些在實際中不一定滿足,但是LDA被證明是非常有效的降維方法,其線性模型對於噪音的魯棒性效果比較好,不容易過擬合。

2.1 二分類

首先從比較簡單的二分類開始,假設存在一組樣本數據, 並且分為兩個類別:

x = { x ( 1 ) , x ( 2 ) , , x ( m ) } z { 0 , 1 }

如果使用PCA進行降維的話,此時不需要考類別z,但是我們其實是不知道那些被拋棄的不必要特征對分類產生的影響,所以會出現上文中的缺點,丟棄的X軸方向剛好是區分兩個類別的方向.

我們的目的是讓樣本數據能夠很好的分成y所代表的的兩類,所以,我們只需要將數據映射為一維的,使得數據在一維上能夠很好的分開,相同類別的數據聚集在一起,不同類別的數據相互分開即可,此時我們即將數據降低到一維了.那怎么實現這個效果呢?
首先假設這個一維向量為w,映射后的數據:

y ( i ) = w T x ( i ) i [ 1 , m ]

方便起見,假設數據特征數為2,我們的目標就是找到一條直線,樣本數據映射其上后,能夠最優的分割樣本點.如下圖:

顯而易見,右側的效果更好一點,如何尋找右側的這條直線,直觀上來說,最優分割時,投影后兩類樣本的均值點相聚最遠,假設 N i 表示對應類別 z i 的樣本數,則原始數據的均值:

μ i = 1 N i x z i x

投影之后的均值:
μ ^ i = 1 N i x z i w T x = w T u i

投影后均值點距離盡量遠,表示如下:
J ( w ) = | μ ^ 1 μ ^ 2 | = | w T ( μ 1 μ 2 ) | ( 2.1 )

如果只考慮均值點距離,上述公式2.1越大,越接近最佳效果,事實並非如此,如下圖:

投影到x1軸均值更大,但是分類效果並不好,投影到x2軸則能夠更好的分類數據,所以,除了考慮類間均值距離以外,還需要使類內數據盡量的聚集在一起,對於同一個類別內的數據而言,明顯x2軸數據比x1軸數據更集中,而判斷數據散列程度的度量為方差,考慮投影后類內數據的方差,如下:

S ^ i = x z i ( w T x u ^ i ) 2 = x z i ( w T x w T μ i ) 2 = x z i ( w T x w T μ i ) ( w T x w T μ i ) T = x z i w T ( x μ i ) ( x μ i ) T w

這里注意 ( w T x w T μ i ) 是常數,所以:
( w T x w T μ i ) 2 = ( w T x w T μ i ) ( w T x w T μ i ) T = ( w T x w T μ i ) T ( w T x w T μ i )

為了稍后的計算,我們選擇前者.定義:

S i = x z i ( x μ i ) ( x μ i ) T

所以:

S ^ i = w T S i w

我們的目標是: 不同類別的樣本點越分開越好,同類的越聚集越好,也就是均值點間距離越大越好,散列值越小越好. 定量表示如下:
J ( w ) = | μ ^ 1 μ ^ 2 | 2 S ^ 1 + S ^ 2

此時,目標函數值越大,越滿足要求,以上公式就定量代表了我們的目標. 帶入參數簡化上式:
| μ ^ 1 μ ^ 2 | 2 = w T ( μ 1 μ 2 ) ( μ 1 μ 2 ) T w S ^ 1 + S ^ 2 = w T ( S 1 + S 2 ) w h y p o t h e s i s S B = ( μ 1 μ 2 ) ( μ 1 μ 2 ) T S W = S 1 + S 2

所以:
J ( w ) = w T S B w w T S W w

這里有個核心點是:
上述公式,無論w擴大多少倍數,都不會影響最終的結果。所以極值點,w的值並不唯一,此時需要固定w的取值,使:
w T S W w = 1

這不會影響極值點的取值。使用拉格朗日乘子法求解帶條件的函數極值:
f ( λ , w ) = w T S B w + λ ( 1 w T S W w ) w f ( λ , w ) = 2 S B w 2 λ S W w = 0 => S B w = λ S W w

求解上述公式的極大值,需要利用矩陣的微積分。假設 S W 可逆,則:
( S W 1 S B ) w = λ w

易知,w是 S W 1 S B 的特征向量。
進一步帶入參數簡化:
S B w = ( μ 1 μ 2 ) ( μ 1 μ 2 ) T w λ w = ( μ 1 μ 2 ) T w

這里 λ w 是一個未知的實數,所以
S W 1 S B w = S W 1 ( μ 1 μ 2 ) λ w = λ w
## 標題 ##
由於w擴大任意倍數都不會影響結果,所以:
w = S W 1 ( μ 1 μ 2 )

1. 這里假設 S W 可逆,但是當樣本維數較高,而樣本數較少時,這時可能不可逆,為奇異矩陣。此時可以考慮先使用PCA對樣本進行降維,然后再對降維后的數據使用LDA。
2. 求w時,並沒有求 S W 1 S B 的特征向量,因為不一定是對稱矩陣,求它的特征向量時不能使用奇異值分解,使用普通方式求解特征值的方式,時間復雜度為 O ( n 3 )

2.2 多分類

//todo

參考:
1. https://www.cnblogs.com/engineerLF/p/5393119.html
2. https://www.cnblogs.com/kemaswill/archive/2013/01/27/2879018.html
3. http://blog.csdn.net/zjm750617105/article/details/52104850


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: