PCA:在機器學習中的應用

主成分分析(PCA)是一種無監督的非參數統計技術,主要用於機器學習中的降維。

高維度意味著機器學習數據集具有大量特徵。在機器學習領域,與高維相關的主要問題是模型過擬合,這會降低在訓練集之外進行泛化的能力。1961年,理查德·貝爾曼(Richard Bellman)將這一現象描述為“維度詛咒”,“當輸入是高維的時候,許多在低維度上運行良好的算法變得難以處理。”

PCA:在機器學習中的應用

隨著訓練數據集的維數的增加,機器學習模型泛化的能力將以指數形式變得越來越困難。通過刪除冗餘的特徵不僅降低了計算成本,還提高了學習速度,從而使模型也變得更加有效。

PCA還可以用來過濾噪聲數據集,如圖像壓縮。第一個主成分表示的方差最大。較小的方差意味著較多的噪聲,因此用較小的主成分子集表示數據會保留信號並丟棄噪聲。

主成分分析:

通過旋轉軸,PCA使數據集中的最大可變性更加明顯。PCA根據每個軸捕獲的方差量,在對基礎數據集進行排名之前,識別主軸的列表以描述基礎數據集。

PCA:在機器學習中的應用

在上圖中,第一個主成分(PC1)是一個合成變量,它被構造成一個線性組合來確定數據集中最大方差的大小和方向。在所有成分中,此成分的可變性最高,因此信息最多。第二個主成分(PC2)也是線性組合,它捕捉數據集中剩餘的方差(與PC1無關)。後面的主成分類似地捕獲剩餘的變化,不與先前的成分關聯。

PCA是一種無監督學習算法,因為這些成分的方向完全根據解釋性特徵集計算而不參考響應變量。

特徵組合的數量等於數據集的維數,並且通常設置可以構造的PCA的最大數量。

PCA:在機器學習中的應用

每個藍色點對應一個觀測值,每個主分量將三維空間縮小到二維。該算法找到一對正交向量(紅色箭頭),它們定義了一個低維空間(灰色平面),以從原始數據集捕獲儘可能多的方差。

測量

特徵向量和特徵值是用於量化每個軸捕獲的變化的方向和大小的度量。特徵向量通過數據空間描述軸的角度或方向,特徵值量化了軸上數據方差的大小。

PCA:在機器學習中的應用

A是x n矩陣,ƛ是特徵值,X是特徵向量。

要素組合的數量等於數據集的維數。例如,具有十個特徵的數據集將具有十個特徵值/特徵向量組合。

每個主成分之間的相關性應該為零,因為後續的成分會捕獲剩餘的方差。任意一對特徵值/特徵向量之間的相關性為零,因此軸是正交的,即,在數據空間中相互垂直

將數據投影到數據空間後,使其方差最大化的直線等價於找到投影最小二乘距離的路徑。

PCA:在機器學習中的應用

假設

PCA基於Pearson相關係數框架並繼承了類似的假設。

  1. 樣本量:最少150個觀測值,理想情況下觀測值與特徵值之比為5:1(Pallant,2010)
  2. 相關性:特徵集是相關的,因此簡化的特徵集有效地代表了原始數據空間。
  3. 線性:所有變量都表現出恆定的多元正態關係,主成分是原始特徵的線性組合。
  4. 異常值:數據中沒有顯著的異常值,因為這些異常值對結果的影響可能不成比例。
  5. 大方差意味著更多結構:高方差軸被視為主要組件,而低方差軸被視為噪聲並被丟棄。

應用PCA工作流程

從理論上講,PCA線性變換也可以通過神經網絡的輸入層權重來進行。然而,當對神經網絡進行縮放時,計算網絡權重所需的數據集的大小會增加,並且過度擬合會成為問題。

另一方面,PCA減少了輸入節點的數量,反過來減少了訓練網絡的數據集的大小。

用於說明的數據集是Fashion-MNIST:一個包含60,000個訓練樣例的數據集和一個包含10,000個觀測值的測試集,總共有784個特徵。每個觀察示例是28x28灰度圖像,與10個類別的標籤相關聯。使用具有784個輸入節點,10個隱藏層和10個輸出節點的未調整神經網絡來對性能進行基準測試。

1. 歸一化數據

PCA用於識別具有最大方差的成分,每個變量對成分的貢獻基於其方差大小。最佳實踐是在執行PCA之前對數據進行歸一化,因為具有不同度量單位的未縮放數據會扭曲特徵間方差的相對比較。

2.為特徵分解創建協方差矩陣

要得到所有不同維度之間所有可能的關係,一個有用的方法是計算它們之間的協方差,並將它們放入一個協方差矩陣中,該矩陣表示數據中這些關係。瞭解每個主成分捕獲的累積方差百分比是減少特徵集的一個組成部分。

3.選擇最佳主成分數

主成分的最優數量是通過將累積解釋的方差比作為成分數量的函數來確定的。pc的選擇完全取決於維度減少和信息損失之間的權衡。下面累積方差的圖形化表示表明,近75%的方差僅歸因於100/784個特徵,95%歸因於300/784個特徵,表明特徵冗餘度較高。

PCA:在機器學習中的應用

性能分析

沒有PCA應用的神經網絡在訓練和驗證損失指標之間有很大的差異,表明存在顯著的過擬合。通過主成分分析減小特徵空間,損失度量開始收斂,對準確度測量沒有顯著影響。降維提高了模型的性能和效率。

PCA:在機器學習中的應用

PCA:在機器學習中的應用

PCA限制

  • 模型性能:PCA會導致在沒有或低特徵相關性或不滿足線性假設的數據集上的模型性能下降。
  • 分類準確性:基於方差的PCA框架不考慮類的區分特徵。此外,區分一個類與另一個類的信息可能在低方差分量中並且可能被丟棄。
  • 異常值: PCA也受到異常值的影響,數據的歸一化需要成為任何工作流程的重要組成部分。
  • 可解釋性:每個主成分是原始特徵的組合,不允許識別單個特徵的重要性。

結論

PCA是數據科學家工具包的一個便利補充,可以在大多數情況下提高模型性能。 在Scikit-Learn庫中有一些擴展可以緩解PCA的特定限制。 這些包括RandomizedPCA,它適用於快速逼近高維數據中的前幾個主成分,以及SparsePCA,它引入了正則化調整參數以增加稀疏性。


分享到:


相關文章: