1. 程式人生 > >線性判別分析(Linear Discriminant Analysis, LDA) 學習筆記 + matlab實現

線性判別分析(Linear Discriminant Analysis, LDA) 學習筆記 + matlab實現

綜述

線性判別分析 (LDA)是對費舍爾的線性鑑別方法(FLD)的歸納,屬於監督學習的方法。LDA使用統計學,模式識別和機器學習方法,試圖找到兩類物體或事件的特徵的一個線性組合,以能夠特徵化或區分它們。所得的組合可用來作為一個線性分類器,或者,更常見的是,為後續的分類做降維處理。

LDA的基本思想是將高維的模式樣本投影到最佳鑑別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離最小的類內距離,即模式在該空間中有最佳的可分離性。因此,它是一種有效的特徵抽取方法。使用這種方法能夠使投影后模式樣本的類間散佈矩陣最大,並且同時類內散佈矩陣最小。就是說,它能夠保證投影后模式樣本在新的空間中有最小的類內距離和最大的類間距離,即模式在該空間中有最佳的可分離性。

LDA演算法流程

decision
根據基本思想,我們需要將樣本點投影到最佳鑑別向量空間,達到以下兩個要求:最大化類間距離與最小化類中樣本方差。
我們設向量空間的weight vector為 w⃗  且其長度為1
這裡寫圖片描述
假設我們有兩個類的樣本類I和類A,則均值

μ⃗ i=1niq⃗ Iq⃗ 
μ⃗ a=1naq⃗ Aq⃗ 
類內方差Within class variance (協方差矩陣):
Si=q⃗ I(q⃗ μ⃗ i)(q⃗ μ⃗ i)T
Sa=q⃗ A(q⃗ μ⃗ a)(q⃗ μ⃗ a)T

協方差矩陣所刻畫的是該類與樣本總體之間的關係,其中該矩陣對角線上的函式所代表的是該類相對樣本總體的方差(即分散度),而非對角線上的元素所代表是該類樣本總體均值的協方差(即該類和總體樣本的相關聯度或稱冗餘度)

類內散度矩陣 Total within class variance

Sw=Si+Sa
類間散度矩陣 Between class variance Sb=(μ⃗ aμ⃗ i)(μ⃗ aμ⃗ i)T
如果所有樣本都被LDA轉換,則類方差與類方差總數之比為(Fisher鑑別準則表示式) w⃗ TSbw⃗ w⃗ TSww⃗ 
該值在w⃗ =S1w(μ⃗ aμ⃗ b)
最小化
分割點為:12w⃗ T(μ⃗ a+μ⃗ b)
因此,值大於此分割點時屬於Class A,反之則屬於Class I
這裡寫圖片描述

演算法分析

由於是兩類資料,因此我們只需要將資料投影到一條直線上即可。假設我們的投影直線是向量w

,則對任意一個樣本本xi,它在直線w的投影為wTxi,對於我們的兩個類別的中心點μ0,μ1,在在直線w的投影為wTμ0wTμ1。由於LDA需要讓不同類別的資料的類別中心之間的距離儘可能的大,也就是我們要最大化||wTμ0wTμ1||22,同時我們希望同一種類別數據