Pca

SVD 和 PCA 之間的關係。如何使用 SVD 執行 PCA?

  • January 20, 2015

主成分分析 (PCA) 通常通過協方差矩陣的特徵分解來解釋。但是,它也可以通過數據矩陣的奇異值分解 (SVD) 來執行. 它是如何工作的?這兩種方法之間有什麼聯繫?SVD和PCA有什麼關係?

或者換句話說,如何使用數據矩陣的 SVD 進行降維?

讓數據矩陣 X 屬於 n×p 大小,在哪裡 n 是樣本數和 p 是變量的數量。讓我們假設它是居中的,即列均值已被減去,現在等於零。

然後 p×p 協方差矩陣 C 是(誰)給的 C=XX/(n1) . 它是一個對稱矩陣,因此可以對角化:C=VLV,

在哪裡 V 是一個特徵向量矩陣(每列是一個特徵向量)和 L 是具有特徵值的對角矩陣 λi 在對角線上按降序排列。特徵向量稱為數據的主軸主方向。數據在主軸上的投影稱為主成分,也稱為PC 分數;這些可以被視為新的、轉換的變量。這 j -th 主成分由下式給出 j - 第列 XV . 的坐標 i - 新 PC 空間中的第一個數據點由 i - 第行 XV .

如果我們現在執行奇異值分解 X ,我們得到一個分解X=USV,

在哪裡 U 是一個酉矩陣並且 S 是奇異值的對角矩陣 si . 從這裡可以很容易看出C=VSUUSV/(n1)=VS2n1V,
意味著右奇異向量 V 是主要方向,奇異值與協方差矩陣的特徵值通過 λi=s2i/(n1) . 主成分由下式給出 XV=USVV=US .

總結一下:

  1. 如果 X=USV ,然後列 V 是主要方向/軸。
  2. 的列 US 是主要成分(“分數”)。
  3. 奇異值通過以下方式與協方差矩陣的特徵值相關 λi=s2i/(n1) . 特徵值 λi 顯示各個 PC 的差異。
  4. 標準化分數由以下列給出 n1U 和載荷由列給出 VS/n1 . 例如,請參閱此處此處,了解為什麼“裝載”不應與主要方向混淆。
  5. **以上是正確的,僅當 X 居中。**只有這樣,協方差矩陣才等於 XX/(n1) .
  6. 以上僅適用於 X 在行中有樣本,在列中有變量。如果變量在行中,樣本在列中,則 UV 交換解釋。
  7. 如果要對相關矩陣(而不是協方差矩陣)執行 PCA,則 X 不僅應該居中,還應該標準化,即除以它們的標準差。
  8. 為了減少數據的維數 pk<p , 選擇 k 的第一列 U , 和 k×k 的左上角 S . 他們的產品 UkSk 是必需的 n×k 包含第一個矩陣 k 件。
  9. 進一步乘以第一個 k 對應主軸的 PC Vk 產量 Xk=UkSkVk 具有原始矩陣 n×p 大小但等級較低(等級 k )。這個矩陣 Xk 提供從第一個原始數據的重建 k 件。它具有最低的重建錯誤,請參閱我的答案here
  10. 嚴格來講, Un×n 尺寸和 Vp×p 尺寸。然而,如果 n>p 然後是最後一個 npU 是任意的(以及相應的行 S 是常數零);因此,應該使用一個經濟尺寸(或)的 SVD,它返回 Un×p 大小,刪除無用的列。對於大 np 矩陣 U 否則將是不必要的巨大。這同樣適用於相反的情況 np .

更多鏈接

旋轉 PCA 動畫

引用自:https://stats.stackexchange.com/questions/134282