什麼是LDA
LDA是一種監督學習的降維技術,也就是說它的資料集的每個樣本是有類别輸出的。這點和PCA不同。PCA是不考慮樣本類别輸出的無監督降維技術。LDA的思想可以用一句話概括,就是“投影後類内方差最小,類間方差最大”。什麼意思呢? 我們要将資料在低次元上進行投影,投影後希望每一種類别資料的投影點盡可能的接近,而不同類别的資料的類别中心之間的距離盡可能的大。
我們來看一個例子,假設我們有兩類資料 分别為紅色和藍色,如下圖所示,這些資料特征是二維的,我們希望将這些資料投影到一維的一條直線,讓每一種類别資料的投影點盡可能的接近,而紅色和藍色資料中心之間的距離盡可能的大。

上圖提供了兩種投影方式,哪一種能更好的滿足我們的标準呢?從直覺上可以看出,右圖要比左圖的投影效果好,因為右圖的紅色資料和藍色資料各個較為集中,且類别之間的距離明顯。左圖則在邊界處資料混雜。以上就是LDA的主要思想了,當然在實際應用中,我們的資料是多個類别的,我們的原始資料一般也是超過二維的,投影後的也一般不是直線,而是一個低維的超平面。
再看一個例子
左邊的投影效果顯然不如右邊圖的投影效果。假如我們知道了兩類資料的中心點 u 1 u_1 u1和 u 2 u_2 u2,以及兩類資料的離散度 S 1 S_1 S1以及 S 2 S_2 S2,那我們現在要做的就是使 ∣ u 1 − u 2 ∣ 2 S 1 2 + S 2 2 \frac{|u_1 - u_2|^2}{S_1^2 + S_2^2} S12+S22∣u1−u2∣2盡量大。即最大化兩類資料的距離,最小化兩類資料各自的離散度。
那我們應該如何進行計算呢???
在我們将上面直覺的内容轉化為可以度量的問題之前,我們先了解些必要的數學基礎知識,這些在後面講解具體LDA原理時會用到。
瑞利商(Rayleigh quotient)與廣義瑞利商(genralized Rayleigh quotient)
我們首先來看看瑞利商的定義。瑞利商是指這樣的函數R(A,x):
R ( A , x ) = x H A x x H x R(A,x) = \frac{x^HAx}{x^Hx} R(A,x)=xHxxHAx
其中x為非零向量,而A為n×n的Hermitan矩陣。所謂的Hermitan矩陣就是滿足共轭轉置矩陣和自己相等的矩陣,即AH=A。如果我們的矩陣A是實矩陣,則滿足AT=A的矩陣即為Hermitan矩陣。
瑞利商R(A,x)有一個非常重要的性質,即它的最大值等于矩陣A最大的特征值,而最小值等于矩陣A的最小的特征值,也就是滿足
λ m i n ≤ x H A H x H x ≤ λ m a x λ_{min}≤\frac{x^HAH}{x^Hx}≤λ_{max} λmin≤xHxxHAH≤λmax
具體的證明這裡就不給出了,感興趣的可以看瑞利定理的定理證明
當向量x是标準正交基時,即滿足xHx=1時,瑞利商退化為:R(A,x)=xHAx,這個形式在譜聚類和PCA中都有出現。
以上就是瑞利商的内容,現在我們再看看廣義瑞利商。廣義瑞利商是指這樣的函數R(A,B,x):
R ( A , X ) = x H A H x H B x R(A,X) = \frac{x^HAH}{x^HBx} R(A,X)=xHBxxHAH
其中x為非零向量,而A,B為n×n的Hermitan矩陣。B為正定矩陣。它的最大值和最小值是什麼呢?其實我們隻要通過将其通過标準化就可以轉化為瑞利商的格式。我們令x=B−1/2x′,則分母轉化為:
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^{-\frac{1}{2}})^HBB^{-\frac{1}{2}}x' = x'^HB^{-\frac{1}{2}}BB^{-\frac{1}{2}}x = x'^Hx' xHBx=x′H(B−21)HBB−21x′=x′HB−21BB−21x=x′Hx′
而分子轉化為:
x H A x = x ′ H B − 1 2 A B − 1 2 x ′ x^HAx = x'^HB^{-\frac{1}{2}}AB^{-\frac{1}{2}}x' xHAx=x′HB−21AB−21x′
此時我們的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^{-\frac{1}{2}}AB^{-\frac{1}{2}}x'}{x'^Hx'} R(A,B,X′)=x′Hx′x′HB−21AB−21x′
利用前面的瑞利商的性質,我們可以很快的知道,R(A,B,x′)的最大值為矩陣 B − 1 2 A B − 1 2 B^{-\frac{1}{2}}AB^{-\frac{1}{2}} B−21AB−21的最大特征值,或者說矩陣 B − 1 A B^{-1}A B−1A的最大特征值,而最小值為矩陣 B − 1 A B^{-1}A B−1A的最小特征值。
二類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=(x1,y1),(x2,y2),...,((xm,ym)),其中任意樣本xi為n維向量, y i y_i yi∈{0,1}。我們定義 N j N_j Nj(j=0,1)為第j類樣本的個數, X j X_j Xj(j=0,1)為第j類樣本的集合,而 μ j μ_j μj(j=0,1)為第j類樣本的均值向量,定義 Σ j Σ_j Σj(j=0,1)為第j類樣本的協方差矩陣(嚴格說是缺少分母部分的協方差矩陣)。
μ j μ_j μj的表達式為:
u j = 1 N j ∑ x ∈ X j x ( j = 0 , 1 ) u_j = \frac{1}{N_j}\sum_{x∈X_j}x \ \ (j = 0,1) uj=Nj1x∈Xj∑x (j=0,1)
∑ j \sum_j ∑j的表達式為:
∑ j = ∑ x ∈ X j ( x − u j ) ( x − u j ) T ( j = 0 , 1 ) \sum_j = \sum_{x∈X_j}(x - u_j)(x - u_j)^T (j = 0,1) j∑=x∈Xj∑(x−uj)(x−uj)T(j=0,1)
由于是兩類資料,是以我們隻需要将資料投影到一條直線上即可。假設我們的投影直線是向量w,則對任意一個樣本本 x i x_i xi,它在直線w的投影為 w T x i w^Tx_i wTxi,對于我們的兩個類别的中心點 μ 0 μ_0 μ0, μ 1 μ_1 μ1,在在直線w的投影為 w T μ 0 w^Tμ_0 wTμ0和 w T μ 1 w^Tμ_1 wTμ1。由于LDA需要讓不同類别的資料的類别中心之間的距離盡可能的大,也就是我們要最大化 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^Tμ_0−w^Tμ_1||^2_2 ∣∣wTμ0−wTμ1∣∣22,同時我們希望同一種類别資料的投影點盡可能的接近,也就是要同類樣本投影點的協方差 w T ∑ 0 w 和 w T ∑ 1 w w^T\sum_0w和w^T\sum_1w wT∑0w和wT∑1w盡可能的小,即最小化 w T ∑ 0 w 和 w T ∑ 1 w w^T\sum_0w和w^T\sum_1w wT∑0w和wT∑1w。綜上所述,我們的優化目标為:
a r g m a x J ( w ) = ∣ ∣ w T u 0 − w T u 1 ∣ ∣ 2 2 w T ∑ 0 w + w T ∑ 1 w = w T ( u 0 − u 1 ) ( u 0 − u 1 ) T w w T ( ∑ 0 + ∑ 1 ) w arg max J(w) = \frac{||w^Tu_0 - w^Tu_1||_2^2}{w^T\sum_0w + w^T\sum_1w} = \frac{w^T(u_0 - u_1)(u_0-u_1)^Tw}{w^T(\sum_0 + \sum_1)w} argmaxJ(w)=wT∑0w+wT∑1w∣∣wTu0−wTu1∣∣22=wT(∑0+∑1)wwT(u0−u1)(u0−u1)Tw
我們一般定義類内散度矩陣 S w S_w Sw為:
S w = ∑ 0 + ∑ 1 = ∑ x ∈ X 0 ( x − u 0 ) ( x − u 0 ) T + ∑ x ∈ X 1 ( x − u 1 ) ( x − u 1 ) T S_w = \sum_0 + \sum_1 = \sum_{x∈X_0}(x-u_0)(x-u_0)^T + \sum_{x∈X_1}(x-u_1)(x-u_1)^T Sw=0∑+1∑=x∈X0∑(x−u0)(x−u0)T+x∈X1∑(x−u1)(x−u1)T
同時定義類間散度矩陣 S b S_b Sb為:
S b = ( u 0 − u 1 ) ( u 0 − u 1 ) T S_b = (u_0 - u_1)(u_0 -u_1)^T Sb=(u0−u1)(u0−u1)T
這樣我們的優化目标重寫為:
a r g m a x J ( w ) = w T S b w w T S w w arg \ max J(w) = \frac{w^TS_bw}{w^TS_ww} arg maxJ(w)=wTSwwwTSbw
仔細一看上式,這不就是我們的廣義瑞利商嘛!這就簡單了,利用我們第二節講到的廣義瑞利商的性質,我們知道我們的J(w′)最大值為矩陣 S w − 1 2 S b S w − 1 2 S_w^{-\frac{1}{2}}S_bS_w^{-\frac{1}{2}} Sw−21SbSw−21的最大特征值,而對應的w′為 S w − 1 2 S b S w − 1 2 S_w^{-\frac{1}{2}}S_bS_w^{-\frac{1}{2}} Sw−21SbSw−21的最大特征值對應的特征向量! 而 S w − 1 S b S^{−1}_wS_b Sw−1Sb的特征值和 S w − 1 2 S b S w − 1 2 S_w^{-\frac{1}{2}}S_bS_w^{-\frac{1}{2}} Sw−21SbSw−21的特征值相同, S w − 1 S b S^{−1}_wS_b Sw−1Sb的特征向量w和 S w − 1 2 S b S w − 1 2 S_w^{-\frac{1}{2}}S_bS_w^{-\frac{1}{2}} Sw−21SbSw−21的特征向量w′滿足 w = S w − 1 2 w ′ w=S^{−\frac{1}{2}}_ww′ w=Sw−21w′的關系!
注意到對于二類的時候, S b w S_bw Sbw的方向恒平行于 μ 0 − μ 1 μ_0−μ_1 μ0−μ1,不妨令 S b w = λ ( μ 0 − μ 1 ) S_bw=λ(μ0−μ1) Sbw=λ(μ0−μ1),将其帶入 ( S w − 1 S b ) w = λ w (S^{−1}_wS_b)w=λw (Sw−1Sb)w=λw,可以得到 w = S w − 1 ( μ 0 − μ 1 ) w=S^{−1}_w(μ_0−μ_1) w=Sw−1(μ0−μ1), 也就是說我們隻要求出原始二類樣本的均值和方差就可以确定最佳的投影方向w了。
一定要自己推一下,才好了解!!! 都是一些線代基礎知識。
算法的流程
輸入:資料集 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={(x1,y1),(x2,y2),...,((xm,ym))},其中任意樣本xi為n維向量, y i ∈ { C 1 , C 2 , . . . , C k } y_i∈\{C_1,C_2,...,C_k\} yi∈{C1,C2,...,Ck},降維到的次元d。
輸出:降維後的樣本集 D ′ D′ D′
- 計算類内散度矩陣 S w S_w Sw
- 計算類間散度矩陣 S b S_b Sb
- 計算矩陣 S w − 1 S b S^{−1}_wS_b Sw−1Sb
- 計算 S w − 1 S b S^{−1}_wS_b Sw−1Sb的最大的d個特征值和對應的d個特征向量(w1,w2,…wd),得到投影矩陣WW
- 對樣本集中的每一個樣本特征 x i x_i xi,轉化為新的樣本 z i = W T x i z_i=W^Tx_i zi=WTxi
- 得到輸出樣本集 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′=(z1,y1),(z2,y2),...,((zm,ym))
以上就是使用LDA進行降維的算法流程。實際上LDA除了可以用于降維以外,還可以用于分類。一個常見的LDA分類基本思想是假設各個類别的樣本資料符合高斯分布,這樣利用LDA進行投影後,可以利用極大似然估計計算各個類别投影資料的均值和方差,進而得到該類别高斯分布的機率密度函數。當一個新的樣本到來後,我們可以将它投影,然後将投影後的樣本特征分别帶入各個類别的高斯分布機率密度函數,計算它屬于這個類别的機率,最大的機率對應的類别即為預測類别。
二類LDA例子(與PCA進行對比)
現在有兩個資料集:
C 1 = [ ( 1 , 2 ) ; ( 2 , 3 ) ; ( 3 , 3 ) ; ( 4 , 5 ) ; ( 5 , 5 ) ] C 2 = [ ( 1 , 0 ) ; ( 2 , 1 ) ; ( 3 , 1 ) ; ( 3 , 2 ) ; ( 5 , 3 ) ; ( 6 , 5 ) ] C_1 = [(1,2);(2,3);(3,3);(4,5);{(5,5)}] \\ \ \ \ \ \ \ \ \ \ \ C_2 = [(1,0);(2,1);(3,1);(3,2);(5,3);(6,5)] C1=[(1,2);(2,3);(3,3);(4,5);(5,5)] C2=[(1,0);(2,1);(3,1);(3,2);(5,3);(6,5)]
PCA降維
[ C 1 ; C 2 ] [C_1;C_2] [C1;C2]的協方差:
Z = { 2.7636 2.2545 2.2545 3.0182 } Z = \left\{ \begin{matrix} 2.7636 \ \ \ 2.2545 \\ 2.2545 \ \ \ 3.0182 \end{matrix} \right\} Z={2.7636 2.25452.2545 3.0182}
Z的特征向量和特征值
V = { − 0.7268 0.6869 0.6869 0.7268 } V = \left\{ \begin{matrix} -0.7268 & 0.6869 \\ 0.6869 & 0.7268 \end{matrix}\right\} V={−0.72680.68690.68690.7268}
Z = { 0.6328 0 0 5.1490 } Z = \left\{ \begin{matrix} 0.6328 & 0\\ 0 & 5.1490\end{matrix} \right\} Z={0.6328005.1490}
看出我們有兩個特征值,0.632< 5.1490,選取5.1490所對應的特征向量為投影方向,即:
[ 0.6869 , 0.7268 ] T [0.6869,0.7268]^T [0.6869,0.7268]T
LDA降維
每一類資料的均值:
u 1 = m e a n ( C 1 ) = [ 3.0 , 3.6 ] T u_1 = mean(C_1) = [3.0,3.6]^T u1=mean(C1)=[3.0,3.6]T
u 2 = m e a n ( C 2 ) = [ 3.3 , 2.0 ] T u_2 = mean(C_2) = [3.3,2.0]^T u2=mean(C2)=[3.3,2.0]T
進而算出 S B S_B SB:
S b = ( u 1 − u 2 ) ( u 1 − u 2 ) T = { 0.11 − 0.53 − 0.53 2.56 } S_b = (u_1-u_2)(u_1-u_2)^T = \left\{ \begin{matrix} 0.11 & -0.53 \\ -0.53 & 2.56\end{matrix}\right\} Sb=(u1−u2)(u1−u2)T={0.11−0.53−0.532.56}
每一類資料的離散度:
S 1 = 4 × c o v ( C 1 ) = { 10 8 8 7.2 } S_1 = 4 × cov(C_1) = \left\{ \begin{matrix} 10 & 8 \\8 & 7.2 \end{matrix}\right\} S1=4×cov(C1)={10887.2}
S 2 = 5 × c o v ( C 2 ) = { 17.3 16 16 16 } S_2 = 5 × cov(C_2) = \left\{ \begin{matrix} 17.3 & 16 \\16 & 16 \end{matrix}\right\} S2=5×cov(C2)={17.3161616}
進而算出 S w S_w Sw:
S w = S 1 + S 2 = { 27.3 24 24 23.2 } S_w = S_1 + S_2 = \left\{ \begin{matrix} 27.3 & 24 \\ 24 & 23.2 \end{matrix}\right\} Sw=S1+S2={27.3242423.2}
方法一:
計算 S w − 1 S b S_w^{-1}S_b Sw−1Sb
S w − 1 S b = { 0.26 − 1.27 − 0.30 1.42 } S_w^{-1}S_b = \left\{ \begin{matrix} 0.26 & -1.27 \\-0.30 & 1.42\end{matrix}\right\} Sw−1Sb={0.26−0.30−1.271.42}
S w − 1 S b S_w^{-1}S_b Sw−1Sb的特征值和特征向量
V = { − 0.98 0.67 − 0.20 − 0.75 } V = \left\{ \begin{matrix} -0.98 & 0.67 \\ -0.20 & -0.75 \end{matrix}\right\} V={−0.98−0.200.67−0.75}
D = { 0 0 0 1.69 } D = \left\{ \begin{matrix} 0 & 0 \\ 0 & 1.69 \end{matrix}\right\} D={0001.69}
看出我們有兩個特征值,0<1.69,選取1.69所對應的特征向量為投影方向,即:
[ 0.6656 , − 0.7463 ] T [0.6656,-0.7463]^T [0.6656,−0.7463]T
方法二:
計算 S w − 1 ( u 1 − u 2 ) T S_w^{-1}(u_1-u_2)^T Sw−1(u1−u2)T:
S w − 1 ( u 1 − u 2 ) T = [ − 0.7936 , 0.8899 ] T S_w^{-1}(u_1-u_2)^T = [-0.7936, 0.8899]^T Sw−1(u1−u2)T=[−0.7936,0.8899]T
進行标準化:
[ 0.6656 , − 0.7463 ] T [0.6656,-0.7463]^T [0.6656,−0.7463]T
PCA和LDA圖像比較
不難看出PCA依然是那個PCA,在處理多類資料的降維問題上,效果比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=(x1,y1),(x2,y2),...,((xm,ym)),其中任意樣本xi為n維向量, y i ∈ C 1 , C 2 , . . . , C k y_i∈{C_1,C_2,...,C_k} yi∈C1,C2,...,Ck。我們定義 N j ( j = 1 , 2... k ) N_j(j=1,2...k) Nj(j=1,2...k)為第j類樣本的個數, X j ( j = 1 , 2... k ) X_j(j=1,2...k) Xj(j=1,2...k)為第j類樣本的集合,而 μ j ( j = 1 , 2... k ) μ_j(j=1,2...k) μj(j=1,2...k)為第j類樣本的均值向量,定義 Σ j ( j = 1 , 2... k ) Σ_j(j=1,2...k) Σj(j=1,2...k)為第j類樣本的協方差矩陣。在二類LDA裡面定義的公式可以很容易的類推到多類LDA。
由于我們是多類向低維投影,則此時投影到的低維空間就不是一條直線,而是一個超平面了。假設我們投影到的低維空間的次元為d,對應的基向量為 ( w 1 , w 2 , . . . w d ) (w_1,w_2,...w_d) (w1,w2,...wd),基向量組成的矩陣為W, 它是一個n×d的矩陣。
此時我們的優化目标應該可以變成為:
W T S b W W T S w W \frac{W^TS_bW}{W^TS_wW} WTSwWWTSbW
其中 S b = ∑ j = 1 k N j ( u j − u ) ( u j − u ) T S_b = \sum^k_{j=1}N_j(u_j - u)(u_j-u)^T Sb=∑j=1kNj(uj−u)(uj−u)T,u為所有樣本均值向量; S w = ∑ j = 1 k S w j = ∑ j = 1 k ∑ x ∈ X j ( x − u j ) ( x − u j ) T S_w = \sum^k_{j=1} S_{wj} = \sum^k_{j=1}\sum_{x∈X_j}(x-u_j)(x-u_j)^T Sw=∑j=1kSwj=∑j=1k∑x∈Xj(x−uj)(x−uj)T
但是有一個問題,就是 W T S b W W^TS_bW WTSbW和 W T S w W W^TS_wW WTSwW都是矩陣,不是标量,無法作為一個标量函數來優化!也就是說,我們無法直接用二類LDA的優化方法,怎麼辦呢?一般來說,我們可以用其他的一些替代優化目标來實作。
常見的一個LDA多類優化目标函數定義為:
a r g m a x J ( w ) = ∏ d i a g W T S b W ∏ d i a g W T S w W arg \ max \ \ J(w) = \frac{\prod_{diag}W^TS_bW}{\prod_{diag}W^TS_wW} arg max J(w)=∏diagWTSwW∏diagWTSbW
其中 ∏ d i a g A \prod_{diag}A ∏diagA為A的主對角線元素的乘積,W為n×d的矩陣。
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=1dWiTSwwi∏i=1dWiTSbwi=i=1∏dWiTSwwiWiTSbwi
仔細觀察上式最右邊,這不就是廣義瑞利商嘛!最大值是矩陣 S − 1 w S b S^{−1}wS_b S−1wSb的最大特征值,最大的d個值的乘積就是矩陣 S − 1 w S b S^{−1}wS_b S−1wSb的最大的d個特征值的乘積,此時對應的矩陣W為這最大的d個特征值對應的特征向量張成的矩陣。
由于W是一個利用了樣本的類别得到的投影矩陣,是以它的降維到的次元d最大值為k-1。為什麼最大次元不是類别數k呢?因為 S b S_b Sb中每個 μ j − μ μ_j−μ μj−μ的秩為1,是以協方差矩陣相加後最大的秩為k(矩陣的秩小于等于各個相加矩陣的秩的和),但是由于如果我們知道前k-1個 μ j μ_j μj後,最後一個 μ k μ_k μk可以由前k-1個 μ j μ_j μj線性表示,是以 S b S_b Sb的秩最大為k-1,即特征向量最多有k-1個。
二類和多類公式的關系
看了上面的二類和多類,是不是會有一個疑問:為什麼同一個東西會有兩種表達式?兩個公式其實是一樣的。
LDA vs PCA
LDA用于降維,和PCA有很多相同,也有很多不同的地方,是以值得好好的比較一下兩者的降維異同點。
首先我們看看相同點:
- 兩者均可以對資料進行降維。
- 兩者在降維時均使用了矩陣特征分解的思想。
- 兩者都假設資料符合高斯分布。
我們接着看看不同點:
- LDA是有監督的降維方法,而PCA是無監督的降維方法
- LDA降維最多降到類别數k-1的維數,而PCA沒有這個限制。
- LDA除了可以用于降維,還可以用于分類。
- LDA選擇分類性能最好的投影方向,而PCA選擇樣本點投影具有最大方差的方向。
這點可以從下圖形象的看出,在某些資料分布下LDA比PCA降維較優。
當然,某些某些資料分布下PCA比LDA降維較優,如下圖所示:
LDA的弊端
看了上面那麼多,是不是認為LDA很強大!!!但我們想一種情況,如果多類資料的中心點重合該怎麼辦,我們的 S b S_b Sb直接為0了!這種情況LDA就無法解決!
LDA算法小結
LDA算法既可以用來降維,又可以用來分類,但是目前來說,主要還是用于降維。在我們進行圖像識别圖像識别相關的資料分析時,LDA是一個有力的工具。下面總結下LDA算法的優缺點。
LDA算法的主要優點有:
- 在降維過程中可以使用類别的先驗知識經驗,而像PCA這樣的無監督學習則無法使用類别先驗知識。
- LDA在樣本分類資訊依賴均值而不是方差的時候,比PCA之類的算法較優。
LDA算法的主要缺點有:
- LDA不适合對非高斯分布樣本進行降維,PCA也有這個問題。
- LDA降維最多降到類别數k-1的維數,如果我們降維的次元大于k-1,則不能使用LDA。當然目前有一些LDA的進化版算法可以繞過這個問題。
- LDA在樣本分類資訊依賴方差而不是均值的時候,降維效果不好。
- LDA可能過度拟合資料。
參考:
- 線性判别分析LDA原理總結
- 瑞利商(Rayleigh Quotient)及瑞利定理(Rayleigh-Ritz theorem)的證明
- 袁博老師的ppt