Pca
SVD 和 PCA 之間的關係。如何使用 SVD 執行 PCA?
主成分分析 (PCA) 通常通過協方差矩陣的特徵分解來解釋。但是,它也可以通過數據矩陣的奇異值分解 (SVD) 來執行. 它是如何工作的?這兩種方法之間有什麼聯繫?SVD和PCA有什麼關係?
或者換句話說,如何使用數據矩陣的 SVD 進行降維?
讓數據矩陣 X 屬於 n×p 大小,在哪裡 n 是樣本數和 p 是變量的數量。讓我們假設它是居中的,即列均值已被減去,現在等於零。
然後 p×p 協方差矩陣 C 是(誰)給的 C=X⊤X/(n−1) . 它是一個對稱矩陣,因此可以對角化:C=VLV⊤,
在哪裡 V 是一個特徵向量矩陣(每列是一個特徵向量)和 L 是具有特徵值的對角矩陣 λi 在對角線上按降序排列。特徵向量稱為數據的主軸或主方向。數據在主軸上的投影稱為主成分,也稱為PC 分數;這些可以被視為新的、轉換的變量。這 j -th 主成分由下式給出 j - 第列 XV . 的坐標 i - 新 PC 空間中的第一個數據點由 i - 第行 XV .如果我們現在執行奇異值分解 X ,我們得到一個分解X=USV⊤,
在哪裡 U 是一個酉矩陣並且 S 是奇異值的對角矩陣 si . 從這裡可以很容易看出C=VSU⊤USV⊤/(n−1)=VS2n−1V⊤,意味著右奇異向量 V 是主要方向,奇異值與協方差矩陣的特徵值通過 λi=s2i/(n−1) . 主成分由下式給出 XV=USV⊤V=US .總結一下:
- 如果 X=USV⊤ ,然後列 V 是主要方向/軸。
- 的列 US 是主要成分(“分數”)。
- 奇異值通過以下方式與協方差矩陣的特徵值相關 λi=s2i/(n−1) . 特徵值 λi 顯示各個 PC 的差異。
- 標準化分數由以下列給出 √n−1U 和載荷由列給出 VS/√n−1 . 例如,請參閱此處和此處,了解為什麼“裝載”不應與主要方向混淆。
- **以上是正確的,僅當 X 居中。**只有這樣,協方差矩陣才等於 X⊤X/(n−1) .
- 以上僅適用於 X 在行中有樣本,在列中有變量。如果變量在行中,樣本在列中,則 U 和 V 交換解釋。
- 如果要對相關矩陣(而不是協方差矩陣)執行 PCA,則 X 不僅應該居中,還應該標準化,即除以它們的標準差。
- 為了減少數據的維數 p 到 k<p , 選擇 k 的第一列 U , 和 k×k 的左上角 S . 他們的產品 UkSk 是必需的 n×k 包含第一個矩陣 k 件。
- 進一步乘以第一個 k 對應主軸的 PC V⊤k 產量 Xk=U⊤kS⊤kV⊤k 具有原始矩陣 n×p 大小但等級較低(等級 k )。這個矩陣 Xk 提供從第一個原始數據的重建 k 件。它具有最低的重建錯誤,請參閱我的答案here。
- 嚴格來講, U 是 n×n 尺寸和 V 是 p×p 尺寸。然而,如果 n>p 然後是最後一個 n−p 列 U 是任意的(以及相應的行 S 是常數零);因此,應該使用一個經濟尺寸(或薄)的 SVD,它返回 U 的 n×p 大小,刪除無用的列。對於大 n≫p 矩陣 U 否則將是不必要的巨大。這同樣適用於相反的情況 n≪p .
更多鏈接
- SVD 和 PCA 之間的直觀關係是什麼——math.SE 上一個非常流行且非常相似的線程。
- 為什麼要通過數據的 SVD 對數據進行 PCA?– 討論通過 SVD 執行 PCA 的好處[簡短回答:數值穩定性]。
- PCA 和對應分析與 Biplot 的關係——在一些同類技術的背景下,PCA 均基於 SVD。
- SVD 比 PCA 有什麼優勢嗎?- 一個問題,詢問使用 SVD代替PCA 是否有任何好處 [簡短回答:不適定問題]。
- 理解主成分分析、特徵向量和特徵值——我的回答是對 PCA 的非技術性解釋。為了引起注意,我在這裡複製一個圖: