JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

從 SVD 到 PCA:找到資料真正在意的方向

第一卷教會你 SVD 與譜定理。這裡我們兌現它們:PCA 不過是把譜定理用在共變異數矩陣上,它告訴你哪幾個方向承載了幾乎全部變異。

接續第一卷的終點

在第一卷裡你證明了每個實對稱矩陣都有一組特徵向量構成的標準正交基——這就是譜定理——並且認識了任意矩陣的奇異值分解 A = U Sigma V^T,即奇異值分解。第二卷就是對一個問題的長篇回答:那又如何? 這第一條主線展示這同樣兩個事實如何解決資料、圖與時間上的真實問題。

先想像一團資料點:矩陣 X 的每一列是一次觀測,每一行是一個特徵。這團點的幾何形狀——它朝哪個方向伸展、在哪裡很薄——本質上就是一個偽裝起來的特徵值問題。

共變異數矩陣承載著形狀

先把資料置中,使每個特徵均值為零,再構造共變異數矩陣 C = (1/(n-1)) X^T X。C 是對稱且半正定的,所以譜定理適用:C = Q Lambda Q^T,特徵向量標準正交、特徵值非負。每個特徵值就是資料沿其對應特徵向量方向上的變異。

PCA 一步一步來

  1. 對 X 的每一行做置中(減去其均值)。
  2. 計算 SVD X = U Sigma V^T(或對 C = X^T X / (n-1) 做特徵分解)。
  3. V 的各行就是主方向,按變異由大到小排列。
  4. 做投影:保留前 k 個方向,Z = X V_k,把 n 個特徵壓縮到 k 個。
# 2-D toy: data stretched along the line y = x
X = [[ 2.1,  1.9],
     [-1.0, -1.2],
     [ 0.3,  0.1],
     [-1.4, -0.8]]
# after centering, X^T X is roughly
#   C = [ 1.9 , 1.7 ;
#         1.7 , 1.6 ]
# eigenvalues: lambda_1 ~ 3.4  (big),  lambda_2 ~ 0.1  (tiny)
# top eigenvector v1 ~ (0.72, 0.69)  -> the y = x direction
# 96% of the variance lives along v1, so 1 number per point suffices
緊貼 y = x 的點雲塌縮到一條有意義的軸。

為什麼這與第一卷的最小二乘是同一件事

前 k 個主方向在最小二乘意義下給出 X 的最佳秩-k 低秩逼近——這就是 Eckart–Young 定理,也正是為什麼 PCA、推薦系統詞嵌入暗地裡是同一招:用一個低秩矩陣逼近一個大矩陣,其因子是可解釋的方向。