將 PCA 和 LDA 結合起來有意義嗎?
假設我有一個用於監督統計分類任務的數據集,例如,通過貝葉斯分類器。該數據集包含 20 個特徵,我想通過降維技術(例如主成分分析 (PCA) 和/或線性判別分析 (LDA))將其歸結為 2 個特徵。
兩種技術都將數據投影到較小的特徵子空間:使用 PCA,我會找到最大化數據集中方差的方向(組件)(不考慮類標籤),使用 LDA,我將擁有最大化之間的組件-階級分離。
現在,我想知道這些技術是否、如何以及為什麼可以組合,以及它是否有意義。
例如:
- 通過 PCA 轉換數據集並將其投影到新的 2D 子空間
- 通過 LDA 轉換(已經 PCA 轉換的)數據集最大。班內分離
或者
- 跳過 PCA 步驟並使用 LDA 中的前 2 個組件。
或任何其他有意義的組合。
總結:PCA可以在LDA之前進行,以規範問題,避免過擬合。
回想一下,LDA 投影是通過特徵分解計算的, 在哪裡和是類內和類間協方差矩陣。如果少於數據點(其中是您空間的維度,即特徵/變量的數量),然後將是單數,因此不能倒置。在這種情況下,根本沒有辦法直接執行 LDA,但如果先應用 PCA,它就會起作用。@Aaron 在對他的回复的評論中發表了這一評論,我同意這一點(但一般不同意他的回答,正如您現在將看到的那樣)。
然而,這只是問題的一部分。更大的圖景是 LDA 很容易過度擬合數據。請注意,類內協方差矩陣在 LDA 計算中被反轉;對於高維矩陣,反演是一個非常敏感的操作,只有在估計真的很好。但在高維度, 很難得到準確的估計,在實踐中,一個人通常必須擁有比數據點開始希望估計是好的。否則將幾乎是奇異的(即某些特徵值將非常低),這將導致過度擬合,即在訓練數據上具有近乎完美的類分離,而在測試數據上具有偶然性能。
為了解決這個問題,需要規範化這個問題。一種方法是首先使用 PCA 來降低維度。還有其他可以說更好的方法,例如正則化 LDA (rLDA) 方法,它簡單地使用與小代替(這稱為收縮估計器),但首先進行 PCA 在概念上是最簡單的方法,並且通常效果很好。
插圖
這是過度擬合問題的說明。我從 10 維、50 維、100 維和 150 維空間中的標準高斯分佈(均值零,單位方差)生成了 3 個類中的每個類 60 個樣本,並應用 LDA 將數據投影到 2D 上:
注意隨著維度的增長,類變得越來越好分離,而實際上類之間沒有區別。
如果我們將類稍微分開,我們可以看到 PCA 如何幫助防止過擬合。我在第一類的第一個坐標上加了 1,在第二類的第一個坐標上加了 2,在第三類的第一個坐標上加了 3。現在它們稍微分開了,請參見左上角的子圖:
過度擬合(頂行)仍然很明顯。但是,如果我使用 PCA 對數據進行預處理,始終保持 10 維(底行),那麼過度擬合就會消失,而類仍然接近最佳分離。
PS。為了防止誤解:我並不是說 PCA+LDA 是一個好的正則化策略(相反,我建議使用 rLDA),我只是在證明它是一種可能的策略。
**更新。**之前在以下主題中討論了非常相似的主題,@cbeleites 提供了有趣而全面的答案:
另請參閱此問題並提供一些很好的答案: