降維算法之LDA(線性判別降維算法)--有監(jiān)督

? ? LDA在模式識別領域(比如人臉識別,艦艇識別等圖形圖像識別領域)中有非常廣泛的應用,因此我們有必要了解下它的算法原理。??

? 不同于PCA方差最大化理論,LDA算法的思想是將數據投影到低維空間之后,使得同一類數據盡可能的緊湊,不同類的數據盡可能的分散。因此,LDA算法是一種有監(jiān)督的機器學習算法。同時,LDA有如下兩個假設:(1)原始數據根據樣本均值進行分類。(2)不同類的數據擁有相同的協(xié)方差矩陣。當然,在實際情況中,不可能滿足以上兩個假設。但是當數據主要是由均值來區(qū)分的時候,LDA一般都可以取得很好的效果。

1.算法流程

? ? (1)計算類內散度矩陣S_

? ? (2)計算類間散度矩陣S_{w}

? ? (3)計算矩陣S_{w}^\- S_b

? ? (4)對矩陣S_{w}^\-   S_b 進行特征分解,計算最大的d個最大的特征值對應的特征向量組成W。

? ? (5)計算投影后的數據點Y=W^TX

以上就是使用LDA進行降維的算法流程。實際上LDA除了可以用于降維以外,還可以用于分類。一個常見的LDA分類基本思想是假設各個類別的樣本數據符合高斯分布這樣利用LDA進行投影后,可以利用極大似然估計計算各個累唄投影數據的均值和方差,進而得到該類別高斯分布的概率密度函數。當一個新的樣本到來后,我們可以將它投影,然后將投影后的樣本特征分別帶入各個類別的高斯分布概率密度函數,計算它屬于這個類別的概率,最大的概率對應的類別即為預測類別。LDA應用于分類現在似乎也不是那么流行。

2.discriminant_analysis.LinearDiscriminantAnalysis 分類 sklearn

????class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)

參數:

(1)solver: str類型,默認值為"svd",

? ? svd:使用奇異值分解求解,不用計算協(xié)方差矩陣,適用于特征數量很大的情形,無法使用參數收縮(shrinkage)。

? ? lsqr:最小平方QR分解,可以結合shrinkage使用。

? ? eigen:特征值分解,可以結合shrinkage使用。

?(2)shrinkage: str or float類型,默認值為None

? ? 是否使用參數收縮

? ? None:不使用參數收縮

? ? auto:str,使用Ledoit-Wolf lemma

? ? 浮點數:自定義收縮比例。

? ?(3)components:int類型,需要保留的特征個數,小于等于n-1

屬性:

(1)covariances_:每個類的協(xié)方差矩陣,shape = [n_features, n_features]

(2)means_:類均值,shape = [n_features, n_feateures]

(3)priors_:歸一化的先驗概率。

(4)rotations_:LDA分析得到的主軸,shape = [n_features, n_component]

(5)scalings_:數組列表,每個高斯分布的方差σ

3.優(yōu)缺點和特性

????特點:

? ? ? ? 降維之后的維數最多為類別數-1。所以當數據維度很高,但是類別數少的時候,算法并不適用。LDA算法既可以用來降維,又可以用來分類。但是目前來說,主要還是用于降維。在我們進行圖像識別相關的數據分析時,LDA是一個有力的工具。

? ?優(yōu)點:

? ?(1)LDA在樣本分類信息依賴均值而不是方差的時候,比PCA之類的算法較優(yōu)。

? ?(2)在降維過程中可以使用類別的先驗知識經驗,而像PCA這樣的無監(jiān)督學習則無法使用類別先驗知識。

? ? 缺點:

? ? (1)LDA不適合非高斯分布樣本進行降維,PCA也存在這個問題。

? ? (2)LDA降維最多降到類別數K-1的維數,如果我們降維的維度大于k-1,則不能使用LDA。當然目前有一些LDA的進化版算法可以繞過這個問題。

? ? (3)LDA在樣本分類信息依賴方差而不是均值的時候,降維效果不好

? ? (4)LDA可能過度擬合數據。

4.LDA和PCA的區(qū)別

? ? 二者都有降維的作用。

1.左邊是PCA,屬于無監(jiān)督方法,當數據沒有標簽時可以用它。右邊是LDA,屬于監(jiān)督學習方法??紤]了數據的分類信息,這樣數據在低維空間上就可以分類了,減少了很多的運算量。

2.PCA主要是從特征的協(xié)方差角度考慮,追求的是在降維之后能夠最大化保持數據的內在信息。它不考慮分類信息,因此降低維度后,信息損失降到最低,但分類上可能會變得更加困難。LDA追求的是降維后的數據點盡可能容易被區(qū)分。降維后的樣本數據在新的維度空間有最大的類間距離和最小的類內方差,數據在低維空間有最佳的可分離性。

3.PCA降維后的維度數目是和數據維度相關的,原始數據是n維,那么PCA后維度為1、2~n維。LDA后的維度數目是和類別的個數相關的,原始數據是n維,一共有C個類別,那么LDA后維度為1、2~C-1維。

4.PCA投影的坐標系都是正交的。LDA關注分類能力,不保證投影到的坐標系是正交的。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容