在討論LDA之前,有必要將其自然語言處理領域的LDA區別開來,在自然語言處理領域, LDA是隱含狄利克雷分佈(Latent Dirichlet Allocation,簡稱LDA),他是一種處理文件的主題模型。我們本文只討論線性判別分析,因此後面所有的LDA均指線性判別分析。
線性判別分析(Linear Discriminant Analysis,以下簡稱LDA)是一種經典的線性學習方法,常被用於分類和降維任務中。在PyProphet的演算法中被應用為綜合評分的元件之一,故有必要對LDA演算法進行總結,本篇只講述經典的LDA演算法。
LDA方法
LDA是模式識別的經典演算法,在1996年由Belhumeur引入模式識別和人工智慧領域。LDA的思想可以用一句話概括,就是“投影后類內方差最小,類間方差最大”。具體是什麼意思呢? 給定訓練樣本集,設法選取一條直線並將樣本投影到直線上,投影后希望每一種類別資料的投影點儘可能的接近,而不同類別的資料的類別中心之間的距離儘可能的大。在對新樣本進行分類時,將其投影到選取的直線上,根據投影點的位置來確定新的樣本所屬的類別。
可能還是有點抽象,我們先看看最簡單的情況。假設我們有兩類資料分別為紅色和藍色,如下圖所示,這些資料特徵是二維的,我們希望將這些資料投影到一維的一條直線,讓每一種類別資料的投影點儘可能的接近,而紅色和藍色資料中心之間的距離儘可能的大。
上圖是紅藍資料在選取的兩條直線上的投影,哪一種能更好的滿足我們的標準呢?從直觀上可以看出,右圖要比左圖的投影效果好,因為右圖的紅色資料和藍色資料在投影方向上分佈較為集中,且類別之間的距離明顯。而左圖在邊界處沒有明顯的分界線。
以上就是LDA的主要思想了,當然在實際應用中,我們的資料是多個類別的,我們的原始資料一般也是超過二維的,投影后的也一般不是直線,而是一個低維的超平面。
LDA公式推導
給定資料集
, 設定:
1。
:第
類樣本的集合
2。
:第
類樣本的均值向量
3。
:第
類樣本的協方差矩陣
由此可以得到第
類樣本中心在直線上的投影為
,協方差為
(對映後協方差之和)。以二分類為例,
要保證同一類儘量靠近,那麼
要儘可能的小
要保證不同類間相隔很遠,需要讓
儘可能的大
因此LDA最終需要達到的目標就是最大化
:
我們定義“類內散度矩陣”
(within-class scatter matrix)和“類間散度矩陣”
(between-class scatter matrix)
所以有,
LDA想要
最大化,而如何去確定
呢?上式的分子和分母都是關於
的二次項,因此解與的長度無關,只與其方向有關。(如果是一個解,那麼對於任意常數
,
也是一個解。)
我們設
的分母等於1,最大化
等價於求
使得
最小。
由拉格朗日乘子法(見附錄),滿足下式的
即為所求:
其中
是拉格朗日乘子,由
的公式注意到
的方向恆為
,我們讓
帶入有,
即為LDA想要求得的直線的斜率(和截距無關)。
考慮到數值解的穩定性,在實踐中,我們通常是用奇異值分解來得到
:
最後補充兩點
從貝葉斯決策理論的角度可以證明LDA在兩類資料同先驗、滿足高斯分佈且協方差相等時,LDA可達到最優分類。
LDA核心是投影,這樣往往實現了降維,因而LDA也常被視為一種經典的監督降維技術。
附錄:拉格朗日乘子法
拉格朗日乘子法(Lagrange multipliers)是一種尋找多元函式在一組約束下的極值的方法,透過引入拉格朗日乘子
,可將有
個變數與
個約束條件的最最佳化問題轉化為具有
個變數的無約束最佳化問題求解。
以等式的最佳化問題為例,假定
為
維向量,我們想要尋找
的某個取值
,使目標函式
最小,同時滿足約束
。從幾何的角度來看,是要在
確定的
維曲面上尋找使
最小的點
,可得到以下結論:
* 對於約束曲面上的任意點
,該點的梯度
正交於約束曲面
* 在最優點
,目標函式在該點的梯度
正交於約束曲面
所以存在
使得:
定義拉格朗日函式:
有: