前言
LDA
在模式識別領域(比如人臉識別,艦艇識別等圖形圖像識別領域)中有非常廣泛的應用,因此我們有必要了解一下它的算法原理。除非特別聲明,本文中的LDA
均指的是線性判別分析 (Linear Discriminant Analysis
),它與自然語言處理領域中的LDA
隱含狄利克雷分佈(Latent Dirichlet Allocation
)是有本質上的區別的,後者是一種處理文檔的主題模型 。
一、LDA的思想
LDA
是一種監督學習的降維技術,也就是說它的數據集的每個樣本是有類別輸出的。這點和PCA
不同。PCA
是不考慮樣本類別輸出的無監督降維技術。LDA
的思想可以用一句話概括,就是“投影后類內方差最小,類間方差最大 ”。什麼意思呢? 我們要將數據在低維度空間上進行投影,投影后希望同種類別數據的投影點儘可能的接近,而不同類別的數據的類別中心之間的距離儘可能的大 。
這裏假設我們有兩類數據分別用紅色和藍色表示,如下圖所示,這些數據特徵是二維的,我們希望將這些數據投影到一維的一條直線上,讓同種類別數據的投影點儘可能的接近,而且讓紅色和藍色數據中心之間的距離儘可能的大:
上圖中提供了兩種投影方式,那麼哪一種能更好的滿足我們的標準呢?從直觀上可以看出,右圖要比左圖的投影效果好,因爲右圖的紅色數據和藍色數據各自較爲集中,且類別之間的距離明顯。左圖則在邊界處兩類數據比較混雜。以上就是LDA
的主要思想了,當然在實際應用中,我們的數據一般是多個類別的,我們的原始數據一般也是超過二維的,投影后的數據也一般不是直線,而是一個低維的超平面。
在我們將上面直觀的內容轉化爲可以度量的問題之前,我們先了解些必要的數學基礎知識,這些在後面講解具體LDA
原理時會用到。
二、瑞利商(Rayleigh Quotient)和廣義瑞利商(Generalized Rayleigh Quotient)
瑞利商是指這樣的函數 R ( A , x ) R(A,x) R ( A , x ) :
R ( A , x ) = x H A x x H x
R(A,x) = \frac{x^HAx}{x^Hx}
R ( A , x ) = x H x x H A x
其中 x x x 爲非零向量,而 A A A 爲 n × n n×n n × n 的 H e r m i t e Hermite H e r m i t e (埃米爾特 )矩陣。所謂的 H e r m i t e Hermite H e r m i t e 矩陣就是滿足共軛轉置矩陣和自己相等的矩陣 ,即 A H = A A^H=A A H = A 。如果我們的矩陣 A A A 是實矩陣,則滿足 A H = A T A^H=A^T A H = A T 的矩陣即爲 H e r m i t e Hermite H e r m i t e 矩陣。
瑞利商 R ( A , x ) R(A,x) R ( A , x ) 有一個非常重要的性質,即它的最大值等於矩陣 A A A 最大的特徵值,而最小值等於矩陣 A A A 的最小的特徵值,也就是滿足:
λ m i n ≤ x H A x x H x ≤ λ m a x
\lambda_{min} \leq \frac{x^HAx}{x^Hx} \leq \lambda_{max}
λ m i n ≤ x H x x H A x ≤ λ m a x
具體的證明大家可以參考這篇文章:瑞利商及其極值的計算 。
當向量 x x x 是標準正交基時,即滿足 x H x = 1 x^Hx=1 x H x = 1 時,瑞利商退化爲:R ( A , x ) = x H A x R(A,x)=x^HAx R ( A , x ) = x H A x ,這個形式在譜聚類 和PCA 中都有出現。
以上就是瑞利商的內容,現在我們再看看廣義瑞利商 。廣義瑞利商是指這樣的函數 R ( A , B , x ) R(A,B,x) R ( A , B , x ) :
R ( A , B , x ) = x H A x x H B x
R(A, B, x) = \frac{x^HAx}{x^HBx}
R ( A , B , x ) = x H B x x H A x
其中 x x x 爲非零向量,而 A , B A,B A , B 爲 n × n n×n n × n 的 H e r m i t e Hermite H e r m i t e 矩陣。B B B 爲正定矩陣。它的最大值和最小值是什麼呢?其實我們只要通過將其標準化就可以轉化爲瑞利商的格式 。我們令 x = B − 1 / 2 x ′ x=B^{−1/2}x' x = B − 1 / 2 x ′ ,則分母轉化爲:
x H B x = x ′ H ( B − 1 / 2 ) H B B − 1 / 2 x ′ = x ′ H B − 1 / 2 B B − 1 / 2 x ′ = x ′ H x ′
x^HBx = x'^H(B^{-1/2})^HBB^{-1/2}x' = x'^HB^{-1/2}BB^{-1/2}x' = x'^Hx'
x H B x = x ′ H ( B − 1 / 2 ) H B B − 1 / 2 x ′ = x ′ H B − 1 / 2 B B − 1 / 2 x ′ = x ′ H x ′
而分子轉化爲:
x H A x = x ′ H B − 1 / 2 A B − 1 / 2 x ′
x^HAx = x'^HB^{-1/2}AB^{-1/2}x'
x H A x = x ′ H B − 1 / 2 A B − 1 / 2 x ′
此時我們的 R ( A , B , x ) R(A,B,x) R ( A , B , x ) 轉化爲 R ( A , B , x ′ ) R(A,B,x′) R ( A , B , x ′ ) :
R ( A , B , x ′ ) = x ′ H B − 1 / 2 A B − 1 / 2 x ′ x ′ H x ′
R(A,B,x') = \frac{x'^HB^{-1/2}AB^{-1/2}x'}{x'^Hx'}
R ( A , B , x ′ ) = x ′ H x ′ x ′ H B − 1 / 2 A B − 1 / 2 x ′
利用前面的瑞利商的性質,我們可以很快的知道,R ( A , B , x ′ ) R(A,B,x') R ( A , B , x ′ ) 的最大值爲矩陣 B − 1 / 2 A B − 1 / 2 B^{−1/2}AB^{−1/2} B − 1 / 2 A B − 1 / 2 的最大特徵值,或者說矩陣 B − 1 A B^{−1}A B − 1 A 的最大特徵值,而最小值爲矩陣 B − 1 A B^{−1}A B − 1 A 的最小特徵值。這裏使用了一些技巧,即對矩陣進行標準化 A i j B i ⋅ B j \frac{A_{ij}}{\sqrt{B_i \cdot B_j}} B i ⋅ B j A i j 。
三、二類LDA的原理
現在我們回到LDA
的原理上,我們在第一小節介紹到了LDA
希望投影后同種類別數據的投影點儘可能的接近,而不同類別的數據的類別中心之間的距離儘可能的大,但這只是一個感官的度量。現在我們首先從比較簡單的二類LDA
入手,嚴謹的分析LDA
的原理。
假設我們的數據集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } D=\{(x_1, y_1),(x_2, y_2), ... , ((x_m,y_m))\} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } ,其中任意樣本 x i x_i x i 爲 n n n 維向量,y i ∈ { 0 , 1 } y_i∈\{0,1\} y i ∈ { 0 , 1 } 。我們定義 N j ( j = 0 , 1 ) N_j(j=0,1) N j ( j = 0 , 1 ) 爲第 j j j 類樣本的個數,X j ( j = 0 , 1 ) X_j(j=0,1) X j ( j = 0 , 1 ) 爲第 j j j 類樣本的集合,而 μ j ( j = 0 , 1 ) μ_j(j=0,1) μ j ( j = 0 , 1 ) 爲第 j j j 類樣本的均值向量,定義 Σ j ( j = 0 , 1 ) \Sigma_j(j=0,1) Σ j ( j = 0 , 1 ) 爲第 j j j 類樣本的協方差矩陣(嚴格說是缺少分母部分的協方差矩陣)。
μ j \mu_j μ j 的表達式爲:
μ j = 1 N j ∑ x ∈ X j x ( j = 0 , 1 )
\mu_j = \frac{1}{N_j} \sum_{x \in X_j} x \quad (j = 0, 1)
μ j = N j 1 x ∈ X j ∑ x ( j = 0 , 1 )
Σ j \Sigma_j Σ j 的表達式爲:
Σ j = ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T ( j = 0 , 1 )
\Sigma_j = \sum_{x \in X_j} (x - \mu_j)(x - \mu_j)^T \quad (j = 0, 1)
Σ j = x ∈ X j ∑ ( x − μ j ) ( x − μ j ) T ( j = 0 , 1 )
由於是兩類數據,因此我們只需要將數據投影到一條直線上即可。假設我們的投影直線是向量 w w w ,則對任意一個樣本 x i x_i x i ,它在直線 w w w 的投影爲 w T x i w^Tx_i w T x i ,對於我們的兩個類別的中心點 μ 0 , μ 1 μ_0, μ_1 μ 0 , μ 1 ,在直線 w w w 上的投影爲 w T μ 0 w^Tμ_0 w T μ 0 和 w T μ 1 w^Tμ_1 w T μ 1 。由於LDA
需要讓不同類別的數據的類別中心之間的距離儘可能的大,也就是我們要最大化 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^Tμ_0−w^Tμ_1||_2^2 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ,同時我們希望同種類別數據的投影點儘可能的接近,也就是要讓同類樣本投影點的協方差 w T Σ 0 w w^T\Sigma_0w w T Σ 0 w 和 w T Σ 1 w w^T\Sigma_1w w T Σ 1 w 儘可能的小,即最小化 w T Σ 0 w + w T Σ 1 w w^T\Sigma_0w + w^T\Sigma_1w w T Σ 0 w + w T Σ 1 w 。綜上所述,我們的優化目標爲:
arg max ⏟ w J ( w ) = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w
\underbrace{\arg \max}_w \; J(w) = \frac{||w^Tμ_0−w^Tμ_1||_2^2}{w^T\Sigma_0w + w^T\Sigma_1w} = \frac{w^T(\mu_0 - \mu_1)(\mu_0 - \mu_1)^Tw}{w^T(\Sigma_0 + \Sigma_1)w}
w arg max J ( w ) = w T Σ 0 w + w T Σ 1 w ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 = w T ( Σ 0 + Σ 1 ) w w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w
我們一般定義類內散度矩陣 S w S_w S w 爲:
S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T
S_w = \Sigma_0 + \Sigma_1 = \sum_{x \in X_0}(x - \mu_0)(x - \mu_0)^T + \sum_{x \in X_1}(x - \mu_1)(x - \mu_1)^T
S w = Σ 0 + Σ 1 = x ∈ X 0 ∑ ( x − μ 0 ) ( x − μ 0 ) T + x ∈ X 1 ∑ ( x − μ 1 ) ( x − μ 1 ) T
同時定義類間散度矩陣 S b S_b S b 爲:
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T
S_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T
這樣我們的優化目標重寫爲:
arg max ⏟ w J ( w ) = w T S b w w T S w w
\underbrace{\arg \max}_w \; J(w) = \frac{w^TS_bw}{w^TS_ww}
w arg max J ( w ) = w T S w w w T S b w
仔細觀察上式,這不就是我們的廣義瑞利商嘛!那麼這就簡單了,利用我們第二小節講到的廣義瑞利商的性質,我們知道我們的 J ( w ′ ) J(w') J ( w ′ ) 最大值爲矩陣 S w − 1 / 2 S b S w − 1 / 2 S^{−1/2}_wS_bS^{−1/2}_w S w − 1 / 2 S b S w − 1 / 2 的最大特徵值,而對應的 w ′ w' w ′ 其實爲 S w − 1 / 2 S b S w − 1 / 2 S^{−1/2}_wS_bS^{−1/2}_w S w − 1 / 2 S b S w − 1 / 2 的最大特徵值對應的特徵向量!而 S w − 1 S b S^{−1}_wS_b S w − 1 S b 的特徵值和 S w − 1 / 2 S b S w − 1 / 2 S^{−1/2}_wS_bS^{−1/2}_w S w − 1 / 2 S b S w − 1 / 2 的特徵值相同, S w − 1 S b S^{−1}_wS_b S w − 1 S b 的特徵向量 w w w 和 S w − 1 / 2 S b S w − 1 / 2 S^{−1/2}_wS_bS^{−1/2}_w S w − 1 / 2 S b S w − 1 / 2 的特徵向量 w ′ w' w ′ 滿足 w = S w − 1 / 2 w ′ w = S^{−1/2}_ww' w = S w − 1 / 2 w ′ 的關係!
注意到對於二類的時候,S b w S_bw S b w 的方向恆爲 μ 0 − μ 1 μ_0 − μ_1 μ 0 − μ 1 ,因爲:
S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w
S_bw = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T w
S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w
⇔ S b w = ( μ 0 − μ 1 ) ( w T ( μ 0 − μ 1 ) ) T = ( μ 0 − μ 1 ) ( w T μ 0 − w T μ 1 ) T
\Leftrightarrow S_bw = (\mu_0 - \mu_1)(w^T(\mu_0 - \mu_1))^T = (\mu_0 - \mu_1)(w^T\mu_0 - w^T\mu_1)^T
⇔ S b w = ( μ 0 − μ 1 ) ( w T ( μ 0 − μ 1 ) ) T = ( μ 0 − μ 1 ) ( w T μ 0 − w T μ 1 ) T
我們在之前注意到了 w T μ 0 − w T μ 1 w^T\mu_0 - w^T\mu_1 w T μ 0 − w T μ 1 其實是一個標量,即上式可以表示爲:
S b w = C ( μ 0 − μ 1 ) 其中C是一個常數
S_bw = C(\mu_0 - \mu_1) \quad \text{其中C是一個常數}
S b w = C ( μ 0 − μ 1 ) 其中 C 是一個常數
不妨令 S b w = λ ( μ 0 − μ 1 ) S_bw = \lambda (μ_0 − μ_1) S b w = λ ( μ 0 − μ 1 ) ,將其帶入:( S w − 1 S b ) w = λ w (S^{−1}_wS_b)w=\lambda w ( S w − 1 S b ) w = λ w ,可以得到 w = S w − 1 ( μ 0 − μ 1 ) w=S^{−1}_w(μ_0−μ_1) w = S w − 1 ( μ 0 − μ 1 ) , 也就是說我們只要求出原始二類樣本的均值和方差就可以確定最佳的投影方向 w w w 了 。
四、多類LDA原理
有了二類LDA
的基礎,我們再來看看多類別LDA
的原理。
假設我們的數據集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } D=\{(x_1, y_1), (x_2, y_2), ..., ((x_m, y_m))\} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } ,其中任意樣本 x i x_i x i 爲 n n n 維向量,y i ∈ { C 1 , C 2 , . . . , C k } y_i \in \{C_1, C_2, ..., C_k\} y i ∈ { C 1 , C 2 , . . . , C k } 。我們定義 N j ( j = 1 , 2 , . . . , k ) N_j(j=1, 2, ..., k) N j ( j = 1 , 2 , . . . , k ) 爲第j類樣本的個數,X j ( j = 1 , 2 , . . . , k ) X_j(j=1, 2, ..., k) X j ( j = 1 , 2 , . . . , k ) 爲第 j j j 類樣本的集合,而 μ j ( j = 1 , 2 , . . . , k ) \mu_j(j=1, 2, ..., k) μ j ( j = 1 , 2 , . . . , k ) 爲第 j j j 類樣本的均值向量,定義 Σ j ( j = 1 , 2 , . . . , k ) \Sigma_j(j=1, 2, ..., k) Σ j ( j = 1 , 2 , . . . , k ) 爲第 j j j 類樣本的協方差矩陣。在二類LDA
裏面定義的公式我們可以類推到多類LDA
。
由於我們是多類向低維空間投影,則此時投影到的低維空間就不是一條直線了,而是一個超平面。假設我們投影到的低維空間的維度爲 d d d ,對應的基向量爲 ( w 1 , w 2 , . . . , w d ) (w_1, w_2, ..., w_d) ( w 1 , w 2 , . . . , w d ) ,基向量組成的矩陣爲 W W W , 它是一個 n × d n×d n × d 的矩陣。
此時我們的優化目標可以變成爲:
J ( W ) = W T S b W W T S w W
J(W) = \frac{W^TS_bW}{W^TS_wW}
J ( W ) = W T S w W W T S b W
其中 S b = ∑ j = 1 k N j ( μ j − μ ) ( μ j − μ ) T S_b = \sum_{j=1}^k N_j (\mu_j - \mu)(\mu_j - \mu)^T S b = ∑ j = 1 k N j ( μ j − μ ) ( μ j − μ ) T ,μ \mu μ 爲所有樣本的均值向量, S w = ∑ j = 1 k S w j = ∑ j = 1 k ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T S_w = \sum_{j=1}^k S_{wj} = \sum_{j=1}^k \sum_{x \in X_j} (x - \mu_j)(x - \mu_j)^T S w = ∑ j = 1 k S w j = ∑ j = 1 k ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T 。
但是這裏有一個問題,就是 W T S b W W^TS_bW W T S b W 和 W T S w W W^TS_wW W T S w W 都是矩陣,不是標量,我們無法把它作爲一個標量函數來優化!也就是說,我們無法直接用二類LDA
的優化方法,怎麼辦呢?一般來說,我們可以用其他的一些優化目標來進行替換。
常見的一個LDA
多類優化目標函數定義爲:
arg max ⏟ W J ( W ) = ∏ d i a g W T S b W ∏ d i a g W T S w W
\underbrace{\arg \max}_W \; J(W) = \frac{\prod_{diag} W^TS_bW}{\prod_{diag} W^TS_wW}
W arg max J ( W ) = ∏ d i a g W T S w W ∏ d i a g W T S b W
其中 ∏ d i a g A \prod_{diag} A ∏ d i a g A 爲 A A A 的主對角線元素的乘積,W W W 爲 n × d n \times d n × d 的矩陣。
J ( W ) J(W) J ( W ) 的優化過程可以轉化爲:
J ( W ) = ∏ i = 1 d W i T S b W i ∏ i = 1 d W i T S w W i = ∏ i = 1 d W i T S b W i W i T S w W i
J(W) = \frac{\prod_{i=1}^d W_i^TS_bW_i}{\prod_{i=1}^d W_i^TS_wW_i} = \prod_{i=1}^d \frac{W_i^TS_bW_i}{W_i^TS_wW_i}
J ( W ) = ∏ i = 1 d W i T S w W i ∏ i = 1 d W i T S b W i = i = 1 ∏ d W i T S w W i W i T S b W i
仔細觀察上式最右邊的等式,這不就是廣義瑞利商嘛!最大值是矩陣 S w − 1 S b S^{−1}_wS_b S w − 1 S b 的最大特徵值,最大的 d d d 個這樣的廣義瑞利商的值的乘積就是矩陣 S w − 1 S b S^{−1}_wS_b S w − 1 S b 的最大的 d d d 個特徵值的乘積,此時對應的矩陣 W W W 爲這最大的 d d d 個特徵值對應的特徵向量張成的矩陣。
由於 W W W 是一個利用了樣本的類別得到的投影矩陣,因此它降維能降到的維度 d d d 的最大值爲 k − 1 k-1 k − 1 。爲什麼最大維度不是類別數 k k k 呢?因爲 S b S_b S b 中每個 ( μ j − μ ) ( μ j − μ ) T (\mu_j − \mu)(\mu_j - \mu)^T ( μ j − μ ) ( μ j − μ ) T 的秩爲 1 1 1 ,因此協方差矩陣相加後最大的秩爲 k k k ( R a n k ( A + B ) ≤ R a n k ( A ) + R a n k ( B ) Rank(A + B) \leq Rank(A) + Rank(B) R a n k ( A + B ) ≤ R a n k ( A ) + R a n k ( B ) ),但是由於如果我們知道前 k − 1 k-1 k − 1 個 μ j \mu_j μ j 後,最後一個 μ k \mu_k μ k 可以由前 k − 1 k-1 k − 1 個 μ j \mu_j μ j 線性表示(因爲這裏我們給定樣本之後,所有樣本的均值 μ \mu μ 是已知的),因此 S b S_b S b 的秩最大爲 k − 1 k-1 k − 1 ,即特徵向量最多有 k − 1 k-1 k − 1 個。
五、LDA算法實現的流程
在第三小節和第四小節我們給大家介紹了LDA
的原理,現在我們對LDA
降維的流程做一個總結。
輸入:數據集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } D=\{(x_1, y_1), (x_2, y_2), ..., ((x_m, y_m))\} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } ,其中任意樣本 x i x_i x i 爲 n n n 維向量,y i ∈ { C 1 , C 2 , . . . , C k } y_i \in \{C_1, C_2, ..., C_k\} y i ∈ { C 1 , C 2 , . . . , C k } ,降維到的維度 d d d 。
輸出:降維後的樣本集D ′ D' D ′ 。
① 計算類內散度矩陣 S w S_w S w ;
② 計算類間散度矩陣 S b S_b S b ;
③ 計算矩陣 S w − 1 S b S^{−1}_wS_b S w − 1 S b ;
④ 計算 S w − 1 S b S^{−1}_wS_b S w − 1 S b 的最大的 d d d 個特徵值和對應的 d d d 個特徵向量 ( w 1 , w 2 , . . . , w d ) (w_1, w_2, ..., w_d) ( w 1 , w 2 , . . . , w d ) ,得到投影矩陣 W W W ;
⑤ 對樣本集中的每一個樣本特徵 x i x_i x i ,轉化成爲新的樣本 z i = W T x i z_i=W^Tx_i z i = W T x i ;
⑥ 得到輸出樣本集 D ′ = { ( z 1 , y 1 ) , ( z 2 , y 2 ) , . . . , ( ( z m , y m ) ) } D′=\{(z_1, y_1), (z_2, y_2), ..., ((z_m, y_m))\} D ′ = { ( z 1 , y 1 ) , ( z 2 , y 2 ) , . . . , ( ( z m , y m ) ) } 。
以上就是使用LDA
進行降維的算法流程。實際上LDA
除了可以用於降維以外,還可以用於分類 。一個常見的LDA
分類基本思想是假設各個類別的樣本數據符合高斯分佈 ,這樣利用LDA
進行投影后,可以利用極大似然估計計算各個類別投影數據的均值和方差,進而得到該類別高斯分佈的概率密度函數。當一個新的樣本到來後,我們可以將它投影,然後將投影后的樣本特徵分別帶入各個類別的高斯分佈概率密度函數,計算它屬於這個類別的概率,最大的概率對應的類別即爲該樣本的預測類別。
六、LDA與PCA之間的異同
LDA
用於降維,和PCA
有很多相同,也有很多不同的地方,因此值得我們好好的比較一下兩者的異同點。
首先我們看看相同點:
① 兩者均可以對數據進行降維。
② 兩者在降維時均使用了矩陣特徵分解的思想。
③ 兩者都假設數據符合高斯分佈。
不同點:
-④ LDA
選擇分類性能最好的投影方向,而PCA
選擇樣本點具有最大方差的投影方向。
在某些數據分佈下LDA
比PCA
的降維效果更優,如下圖所示:
當然,某些某些數據分佈下PCA
比LDA
的降維效果更優,如下圖所示:
七、總結
LDA
算法既可以用來降維,又可以用來分類,但是目前來說,主要還是用於降維。在我們進行圖像識別圖像識別相關的數據分析時,LDA
是一個有力的工具。下面總結下LDA
算法的優缺點。
LDA
算法的主要優點有:
LDA
算法的主要缺點有:
① LDA
不適合對非高斯分佈樣本進行降維,PCA
也有這個問題。
② LDA
降維最多降到類別數k-1
的維數,如果我們降維的維度大於k-1
,則不能使用LDA
。當然目前有一些LDA
的進化版算法可以繞過這個問題。
③ LDA
在樣本分類信息依賴方差而不是均值的時候,降維效果不是很好。
④ LDA
可能過度擬合數據。
八、參考文獻
① 線性判別分析LDA原理總結 - 劉建平
② 線性代數之矩陣的屬性和運算