最終更新日:2026年8月26日
gk unsupervised_learning dimensionality_reduction
G検定トップ
> PCAとSVDの関係とは?数式なしで比較【G検定対策】
まず結論
- PCA:データの分散が大きい方向を主成分として求める統計的な次元削減手法
- SVD:行列を
U・Σ・Vᵀに分解する一般的な行列分解
PCAの計算にSVDを使えますが、PCA=目的、SVD=単なる裏方とだけ覚えるのも不十分です。SVD自体も、打切りSVDとして低ランク近似や次元削減に利用されます。
直感的な説明
PCAは、データを「どの方向から見れば一番よく広がりを表せるか」を考えます。
SVDは、行列の構造を重要な成分へ分解します。
中心化したデータ行列をSVDすると、その結果からPCAの主成分方向や分散に対応する情報を求められます。
定義・仕組み
PCA
- データを中心化して考える
- 分散が最大になる方向を第1主成分とする
- 主成分同士は直交する
- 主要な主成分へ射影して次元削減する
SVD
A = U Σ Vᵀ
- 正方行列に限らず長方形行列にも使える
- Σの特異値が成分の重要度を表す
- 大きな特異値だけ残せば低ランク近似ができる
両者の関係
中心化したデータ行列 X にSVDを適用すると、右特異ベクトルからPCAの主成分方向を得られます。
したがって、両者は「完全に別の無関係な手法」でも「まったく同じ手法」でもありません。
いつ使う?(得意・不得意)
| 問題文 | 疑う用語 |
|---|---|
| 分散最大化、主成分、中心化 | PCA |
| U・Σ・Vᵀ、特異値 | SVD |
| 大きな特異値だけ残す | 打切りSVD |
| PCAの数値計算方法 | SVDを使う方法がある |
G検定ひっかけポイント
- ❌「PCAとSVDは完全に同じ」→ 役割・定義が違う
- ❌「SVDはPCA専用の計算方法」→ SVDには広い用途がある
- ❌「SVDは次元削減に使えない」→ 打切りSVDで使える
- ⭕「中心化したデータのSVDからPCAを計算できる」
- ⭕「PCA=分散最大、SVD=特異値」
まとめ(試験直前用)
- PCA=分散を基準に主成分を求める次元削減
- SVD=一般的な行列分解
- PCAの計算にSVDを利用できる
- 打切りSVD自体も次元削減・低ランク近似に使える
- 主成分ならPCA、特異値ならSVD