LDA 線性判別分析

來源:互聯網
上載者:User

註:本文非筆者原創,原文轉載自:http://blog.csdn.net/porly/article/details/8020696

1. LDA是什麼

線性判別式分析(Linear Discriminant Analysis),簡稱為LDA。也稱為Fisher線性判別(Fisher Linear Discriminant,FLD),是模式識別的經典演算法,在1996年由Belhumeur引入模式識別和人工智慧領域。

基本思想是將高維的模式樣本投影到最佳鑒別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離最小的類內距離,即模式在該空間中有最佳的可分離性。

LDA與前面介紹過的PCA都是常用的降維技術。PCA主要是從特徵的共變數角度,去找到比較好的投影方式LDA更多的是考慮了標註即希望投影后不同類別之間資料點的距離更大,同一類別的資料點更緊湊

下面給出一個例子,說明LDA的目標。

 

       可以看到兩個類別,一個綠色類別,一個紅色類別。左圖是兩個類別的未經處理資料,現在要求將資料從二維降維到一維。直接投影到x1軸或者x2軸,不同類別之間會有重複,導致分類效果下降。右圖映射到的直線就是用LDA方法計算得到的,可以看到,紅色類別和綠色類別在映射之後之間的距離是最大的,而且每個類別內部點的離散程度是最小的(或者說聚集程度是最大的)。

這裡還有一個LDA的例子:

 

是一個LDA和PCA區別的例子:

       兩個類別,class1的點都是圓圈,class2的點都是十字。圖中有兩條直線,斜率在1左右的這條直線是PCA選擇的映射直線,斜率在 -1左右的這條直線是LDA選擇的映射直線。其餘不在這兩條直線上的點是未經處理資料點。可以看到由於LDA考慮了“類別”這個資訊(即標註),映射後,可以很好的將class1和class2的點區分開。

2. LDA的一些說明

   第一,降維後的維度是多少?

     PCA降維是直接和資料維度相關的,比如未經處理資料是n維的,那麼PCA後,可以任意選取1維、2維,一直到n維都行(當然是對應特徵值大的那些)。LDA 降維是直接和類別的個數相關的,與資料本身的維度沒關係,比如未經處理資料是n維的,一共有C個類別,那麼LDA降維之後,一般就是1維,2維到C-1維進行選擇(當然對應的特徵值也是最大的一些),舉個例子,假設圖象分類,兩個類別正例反例,每個圖象10000維特徵,那麼LDA之後,就只有1維特徵,並且這維特徵的分類能力最好。
PS:對於很多兩類分類的情況,LDA之後就剩下1維,找到分類效果最好的一個閾值貌似就可以了。

   第二,投影的座標系是否正交

    PCA投影的座標系都是正交的,而LDA根據類別的標註,關注分類能力,因此不保證投影到的座標系是正交的(一般都不正交)。

3. LDA計算過程(兩個類別)

這一節,主要討論只有兩個類別的資料,LDA的計算。現在要找到一個向量w,將資料x投影到w上去之後,得到新的資料y。第一,為了實現投影后的兩個類別的距離較遠,用映射後兩個類別的均值差的絕對值來度量。第二,為了實現投影后,每個類內部資料點比較聚集,用投影后每個類別的方差來度量。

類別i的均值:


   


    類別i投影后的均值(實際上等於mi的投影):


    


    投影后均值差的絕對值:


    


    投影后的方差(這裡的y是類別i中資料投影后的資料,即y=w_t * x):


    


    目標最佳化函數為:


    


    下面通過展開m'和s',定義S_B和S_W:

  

 

    

最佳化目標J(w)改寫如下,這樣是為了方便推匯出計算w的方法。


    


    推導過程忽略了,最後推導結果如下:


    

 

假設資料是n維特徵,m個資料,分類個數為2。那麼Sw實際上是每個類別的共變數矩陣之和,每個類別的共變數矩陣都是n*n的,因此Sw是n*n的,m1-m2是n*1的。計算得到的w是n*1的,即w將維特徵映射為1維。

PS:這裡不用糾結與Sw的共變數矩陣形式,實際上這是拆拆開來w和w_t後的結果,實際上w*Sw*w_t後,仍舊是一個數值,即表示兩個類的投影后方差之和。

4. LDA計算過程(多個類別)

     對於S_w,就是“兩個類別的共變數矩陣之和”變成了“多個類別的共變數矩陣之和”。


     

      對於S_b,以前是“兩個類別的均值之差的絕對值”,現在多個類別了,怎麼計算呢?計算任意兩個類別之間的均值之差的絕對值之和?這樣對於N個類別,需要 C(N,2)次計算,這可能是一個方法,不過LDA使用的方法,計算每個類別的均值與所有類別均值的差異,並且對每個類別的資料量進行加權處理。下式中,m為所有類別的均值,m_i為類別i的均值,n_i為類別i的資料量。


    

        對於n維特徵、C個類別、m個樣本的資料,是將n維資料對應為C-1維。即所求的w是一個n*(c-1)的矩陣。S_w是一個n*n的矩陣(沒有除以樣本數的共變數矩陣之和),S_B是一個C*C的矩陣,實際上S_B矩陣的的秩最多是C-1,這是因為n_i*(m_i-m)這c向量實際上是線性相關的,因為他們的和是均值m的常數倍。這導致後面求解w,實際上是求出C-1個向量一個構成的一個w。

具體計算忽略。

下面就是一個三個類別的例子: 

4. LDA其他變種

如果未經處理資料投影后,仍舊不能很好的分開,那麼Kernel LDA是一個解決方案。

LDA在計算量上與資料的維度有關,2DLDA能夠大大減小LDA計算量。

5. LDA的一些問題

第一,LDA最多投影出C-1維特徵,如果需要更多特徵,則要引入其他方法。

第二,LDA假設資料服從單峰高斯分布,比如下面的複雜資料結構。

5. 參考

Introduction to LDA
Linear Discriminant Analysis - A Brief Tutorial
  http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_fisher_discriminant.htm
線性判別分析(Linear Discriminant Analysis, LDA)演算法分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.