通俗易懂的LDA降維原理

目錄

例子

LDA降維


在前幾篇的文章中,大管提到了PCA降維,有小夥伴私信說在實際情況中,效果不太好。那大管今天就和大家聊一聊另一種降維的方法線性判別分析 (LDA)。它目前也是機器學習領域中比較經典而且又熱門的一種算法。

     還記得在PCA中是怎樣做的嗎?簡單來說,是將數據映射到方差比較大的方向上,最後用數學公式推導出矩陣的前TopN的特徵向量,這裏的方差可以理解爲數據內部的離散程度。而LDA不同於PCA的是它是一種有監督的降維方法。下面舉一個小例子來直觀的說明PCA和LDA的不同降維方法。

例子

如下圖所示爲兩類數據集:

PCA是將數據投影到方差最大的幾個相互正交的方向上,以期待保留最多的樣本信息。樣本的方差越大表示樣本的多樣性越好。x軸和y軸都不是最理想的投影,故上圖中PCA會將數據投影在紅色的軸上。

如下圖所示數據集:

若根據PCA進行降維,將會把數據映射到紅色直線上,這樣做投影確實方差最大,但是這樣做投影之後兩類數據樣本將混合在一起,將不再線性可分,甚至是不可分的。上面的這個數據集如果使用LDA降維,找出的投影方向就是黃色直線所在的方向,這樣的方法在降維之後,可以很大程度上保證了數據的線性可分的。

LDA降維

從上述例子中可以看到,LDA可以用來對數據分類進行處理。爲了說明白LDA的來龍去脈,還是以最簡單的二分類問題爲例。

假設有C1和C2兩個樣本數據集,其均值分別爲:

投影之後的類間距離爲:

將上述兩式合併,求最大間距可以表示爲:

當 ω 方向與(μ1-μ2)一致的時候,該距離達到最大值。從所舉的例子圖中也能看出,我LDA的期望是使得兩個類間的距離最大,類內的距離最小。

由於不同的類別是在同一個數據集中,所以類內距離也可以定義爲不同類的方差之和。故可以定義LDA的目標函數爲:

其中D1和D2分別爲兩個類的類內距離,分別爲:

將D1和D2分別代入,J(ω)可以表示爲:

爲了簡化上述公式,這裏定義類間距離散度SB和類內距離散度SW分別爲:

故可以將式子簡化爲:

下面使用爛大街而有效的方法最大化J(ω),對ω求偏導,並令其爲0,得到:

下面對公式稍作變化,就可以發現一個令人驚訝的結果:

將Sw乘到左邊:

      我們居然把目標函數變成了求矩陣的特徵值,而投影的方向就是這個特徵值對應的特徵向量。故對於二分類問題在不考慮投影長度的情況下,我們只要求得樣本的均值和類內方差就可以計算出投影方向。

回顧PCA的過程,是不是和LDA很相似呢,但是其原理卻不一樣,對於無監督學習使用PCA,有監督學習使用LDA。

多內容下載機器學習資料請掃描下方二維碼關注小編公衆號:程序員大管

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章