廣義瑞利商 機器學習降維之線性判別模型 LDA

2021-10-12 13:16:31 字數 4431 閱讀 1212

1.lda簡介

線性判別分析(linear discriminant analysis, lda)是一種監督學習的降維方法,也就是說資料集的每個樣本是有類別輸出。和之前介紹的機器學習降維之主成分分析(pca)方法不同,pca是不考慮樣本類別輸出的無監督學習方法。lda的原理簡單來說就是將帶上標籤的資料(點),通過投影的方法,投影到維度更低的空間中,使得投影後的點會形成按類別區分。而我們的目標就是使得投影後的資料,類間方差最大,類內方差最小。

以下圖為例,假設有兩類資料,分別為紅色和藍色。現在我們希望,將這些資料投影到一維的直線上,讓每一種類別資料的投影點盡可能的接近,而紅色和藍色資料中心之間的距離盡可能的大。

從上圖的兩種投影方式能夠看出,右圖能夠更好的滿足我們的目標,即類間方差最大,類內方差最小。下面我們來看看lda內部原理,如何達到我們所希望的目標。

2.瑞利商和廣義瑞利商

介紹lda原理之前,我們先了解一些數學知識,即瑞利商(rayleigh quotient)與廣義瑞利商(genralized rayleigh quotient)。首先來看看瑞利商的函式r(a,x)

r(a,x) = \frac

其中x為非零向量,而a為n*n的hermitan矩陣。hermitan矩陣是指滿足共軛轉置矩陣和自己相等的矩陣,即$a^h=a$。如果矩陣a是實矩陣的話,如果滿足$a^t=a$,那麼就是hermitan矩陣。

瑞利商r(a,x)有乙個非常重要的性質,即它的最大值等於矩陣a的最大特徵值,而最小值等於矩陣a的最小特徵值,即滿足

\lambda_\le \frac\le \lambda_

以上就是瑞利商的內容,現在看看廣義瑞利商內容,廣義瑞利商函式r(a,b,x)

r(a,b,x)= \frac

其中x為非零向量,而a,b為n*n的hermitan矩陣,b是正定矩陣。那麼r(a,b,x)的最大值和最小值是什麼呢?

首先我們先將廣義瑞利商轉化為瑞利商的情況,令$x=b^x'​$。則其分母變為

x^hbx = x^(b^)^hbb^x'

= x^b^bb^x'

=x^x'

分子轉化為

x^hax= x^b^ab^x'

此時r(a,b,x)轉變為r(a,b,x′)

r(a,b,x')=\fracb^ab^x'}x'}

利用前面的瑞利商性質,我們可以知道,r(a,b,x)的最大值為矩陣$b^ab^$的最大特徵值,或者說矩陣$b^a$的最大特徵值,最小值為$b^a$的最小特徵值。

3.二類lda原理

假如我們資料集為$d=\$,其中任意樣本$x_i$為n維向量,$y_i \in \$。我們定義$n_j(j=0, 1)$為第j類樣本的個數,$x_j(j=0,1)$為第j類樣本的結合,$\mu_j(j=0,1)$為第j類樣本的均值向量,$\sum_j(j=0, 1)$為第j類樣本的協方差矩陣(嚴格來說是缺少分母部分的協方差矩陣)。其中

\mu_j = \frac\sum_\ x(j=0,1)

\sum_j = \sum_(x-\mu_j)(x-\mu_j)^t\ (j=0,1)

由於是兩類資料,因此我們只需要將資料投影到一條直線上即可。假設我們的投影直線向量為$w$,則對於任意乙個樣本$x_i$,它在直線w的投影為$w^tx_i$。對於我們兩個類別的中心點$\mu_0,\mu_1$來說,在直線$w$的投影為$w^t\mu_0,w^t\mu_1$。

由於lda需要讓不同類別資料的中心之間距離盡可能的大,也就是要最大化$||w^t\mu_0-w^t\mu_1||​$。同時需要讓同一類別資料的投影點盡可能的接近,也就是要最小化$w^t\sum_0w+w^t\sum_1w​$。因此,我們的優化目標變為

\underbrace_w j(w) = \frac=\frac

同時,定義類內散度矩陣$s_w$為

s_w=\sum_0+\sum_1=\sum_(x-\mu_0)(x-\mu_0)^t + \sum_(x-\mu_1)(x-\mu_1)^t

定義類間散度矩陣$s_b$為

s_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^t

這樣我們的優化目標變為

\underbrace_w j(w) = \frac

上述形式便是我們第二節介紹到的廣義瑞利商,利用第二節介紹的廣義瑞利商的性質,能夠得到$j(w)$的最大值為$s_w^s_bs_w^$的最大特徵值,而對應的$w$為$s_w^s_bs_w^$的最大特徵值所對應的特徵向量。

$s_w^s_b$的特徵值和$s_w^s_bs_w ^$的特徵值相同,$s_w^s_b$的特徵向量$w'$和$s_w ^s_bs_w ^$的特徵向量滿足$w'=s_w^w$的關係。注意到對於二類的時候

s_bw' = (\mu_0-\mu_1)(\mu_0-\mu_1)^tw'=(\mu_0-\mu_1)(w'^t(\mu_0-\mu_1))^t

即$s_bw'$的方向恒為$\mu_0-\mu_1$,因此令$s_bw'=\lambda(\mu_0-\mu_1)$,將其帶入$(s_w^s_b)w' = \lambda w'$

(s_w^s_b)w' = s_w^\lambda (\mu_0-\mu_1)= \lambda w'

w'=s_w^(\mu_0-\mu_1)

也就是說,我們只要求出原始二類樣本的均值和方差就可以確定最佳的投影方向w了。

4.多類lda原理

假如我們資料集為$d=\$,其中任意樣本$x_i$為n維向量,$y_i \in \$。我們定義$n_j(j=1,2,...,k)$為第j類樣本的個數,$x_j(j=1,2,...,k)$為第j類樣本的結合,$\mu_j(j=1,2,...,k)$為第j類樣本的均值向量,$\sum_j(j=1,2,...,k)​$為第j類樣本的協方差矩陣。

由於是多維向低維投影,此時得到的低位空間就不是一條直線,而是乙個超平面。假設投影後得到的低維空間維度為d,對應的基向量為$(w_1,w_2,...,w_d)​$,基向量組成的矩陣為w,是乙個n*d的矩陣。

此時我們的優化目標變為

\frac

其中$s_b=\sum_^kn_j(\mu_j-\mu)(\mu_j-\mu)^t$,$\mu$為所有樣本的均值向量。$s_w=\sum_^ks_=\sum_^k\sum_(x-\mu_j)(x-\mu_j)^t$。但是有乙個問題,$w^ts_bw$和$w^ts_ww​$都是矩陣,不是標量,無法作為乙個標量函式來進行優化,怎麼辦呢。

常見的乙個lda多類優化目標函式定義如下所示,其中$\prod_a​$為a的主對角線元素的乘積,w為n*d的矩陣。

\underbrace_w j(w) = \fracw^ts_bw}w^ts_ww}

j(w)的優化過程可以轉化為

j(w)=\frac^dw_i^ts_bw_i}^dw_i^ts_ww_i}= \prod_^d\frac

上述便是我們前面所介紹的廣義瑞利商,最大值便是矩陣$s_w^s_b​$的最大特徵值,最大的d個值的乘積就是矩陣$s_w^s_b​$的最大的d個特徵值的乘積,此時對應的矩陣w為這最大的d個特徵值對應的特徵向量張成的矩陣。

由於w是利用了樣本的類別得到的投影矩陣,因此它的降維到的維度d最大值為k-1。為什麼最大維數不是類別數k呢?因為$s_b​$中每個$\mu_j-\mu​$的秩為1,因此協方差矩陣相加後最大的秩為k(矩陣的秩小於等於各個相加矩陣的秩的和),但是由於如果我們知道前k-1個$\mu_j​$後,最後乙個$\mu_k​$可以由前k-1個$\mu_j​$線性表示,因此$s_b​$的秩最大為k-1,即特徵向量最多有k-1個。

5.lda演算法流程

輸入:資料集$d=\​$,其中任意樣本$x_i​$為n維向量,$y_i\in \​$,降維到的維度d。

輸出:降維後的樣本集$d'​$

演算法過程:計算類內散度矩陣$s_w$。

計算類內散度矩陣$s_b$。

計算矩陣$s_w^s_b​$。

計算$s_w^s_b$的最大的d個特徵值和對應的d個特徵向量$w_1,w_2,...,w_d$,得到投影矩陣w。

對樣本集中每乙個樣本特徵$x_i$,計算得到新樣本$z_i=w^tx_i$。

得到輸出樣本集$d'=\$。

6.lda vs pca

lda和pca有很多相同點和不同點,我們來對比看看兩者的區別。

相同點兩者均可對資料進行降維。

兩者在降維時均使用了矩陣特徵分解的思想。

兩者都假設資料符合高斯分布。

不同點lda是有監督的降維方法,而pca是無監督的降維方法。

lda降維最多降到類別數k-1的維數,而pca無此限制。

lda選擇分類效能最好的投影方向,而pca選擇樣本點投影具有最大方差的方向。

不同資料情況下,lda和pca降維方法各有優劣。例如某些資料情況下lda比pca方法更好

某些資料情況下pca比lda方法降維更好

7.lda演算法總結

lda優點在降維過程中可以使用類別的先驗知識經驗,而pca這種無監督學習則無法使用類別先驗知識。

lda缺點lda可能過度擬合資料。

lda不適合對非高斯分布樣本進行降維,pca也有這個問題。

lda降維最多降到類別數k-1的維數,如果我們降維的維數大於k-1,則不能使用lda。

8.推廣

機器學習之降維

降維的意義 克服維數災難,獲取本質特徵,節省儲存空間,去除無用雜訊,實現資料視覺化 資料壓縮 視覺化資料 主成分分析 pca pca演算法 python 調庫實現 import matplotlib.pyplot as plt 畫圖 from sklearn.datasets import load...

機器學習之PCA降維

1.前言 如果學習分類演算法,最好從線性的入手,線性分類器最簡單的就是lda,它可以看做是簡化版的svm,如果想理解svm這種分類器,那理解lda就是很有必要的了。2.線性判別分析 lda 1 lda思想 lda是一種監督學習的降維技術,也就是說它的資料集的每個樣本是有類別輸出的。這點和pca不同。...

機器學習之資料降維

資料降維 減少特徵數量 一 特徵選擇 1 特徵選擇原因 雜訊 部分特徵對 結果由影響 2 特徵選擇是什麼 filter 過濾式 方差大小 考慮所有樣本這個特徵的資料情況 sklearn.feature selection.variancethreshold variancethreshold thr...