AI用語集・違い比較

主成分分析(PCA)と特異値分解(SVD)の違い

主成分分析とは特異値分解とは

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

結論

主成分分析は、データのばらつき(分散)が大きい方向を順に求め、多くの変数を少数の主成分にまとめる分析の手法で、特異値分解は、どんな形の行列も3つの行列の積に分ける線形代数の計算です。平均を引いて中心化したデータ行列を特異値分解すると主成分が求まるため、特異値分解は主成分分析を計算する道具としても使われます。

比較表

主成分分析(PCA)と特異値分解(SVD)の違いの比較表
観点 主成分分析(PCA)特異値分解(SVD)
英語 principal component analysissingular value decomposition
何をするものか データのばらつきをできるだけ保つ、互いに無相関な少数の合成変数(主成分)を見つける行列をA = UΣVᵀの形に分解する
対象 データ行列(行がサンプル、列が変数)任意のm行n列の行列(正方行列でなくてよい)
平均を引く処理(中心化) 必ず行う。単位の異なる変数は標準化もする必須ではない。潜在意味解析(LSA)などでは平均を引かずに分解する
得られるもの 主成分の方向、各主成分の分散、寄与率・累積寄与率左特異ベクトル(U)、特異値(Σ)、右特異ベクトル(V)
互いの対応 主成分の方向は、中心化したデータ行列の右特異ベクトル(Vの列)に当たる中心化したデータ行列の特異値を2乗し「データ数−1」で割ると、各主成分の分散(不偏分散)になる
主な用途 次元削減、可視化、相関の強い変数の要約、ノイズの低減低ランク近似によるデータ圧縮、潜在意味解析(LSA)、推薦システム、主成分分析の計算
シラバス項目 技術分野 項目8 教師なし学習(キーワード「主成分分析(PCA)」)技術分野 項目8 教師なし学習(キーワード「特異値分解(SVD)」)
G検定での問われ方 分散が最大の方向を順に求める考え方、主成分どうしが無相関になる点、寄与率と累積寄与率の計算正方行列以外にも使えること、大きい特異値だけを残す低ランク近似、主成分分析や推薦システムとの関係

最終確認日:2026年11月1日

それぞれの説明

主成分分析と特異値分解は、どちらも次元削減の話題で出てくるため、混同されがちです。主成分分析は「データをどうまとめたいか」を決める分析の手法で、特異値分解は「行列をどう分けるか」を決める計算の手法です。

主成分分析

主成分分析は、ばらつき(分散)が最も大きい方向を第1主成分とし、それと直交する方向の中で分散が最も大きい方向を第2主成分とする、という手順で新しい軸を取り直します。各主成分の分散が全体に占める割合を寄与率といい、残す主成分の数を決める目安にします。

平均のまわりのばらつきを扱うので、計算の前に各変数から平均を引きます。単位の異なる変数を扱うときは、標準化もします。

特異値分解

特異値分解は、m行n列の行列AをA = UΣVᵀの形に分けます。UとVは直交行列で、Σの対角には0以上の特異値が大きい順に並びます。正方行列でなくても使えるのが特徴です。

大きい特異値の成分だけを残すと、元の行列を少ない数値で近似できます(低ランク近似)。この近似が二乗誤差の意味で最良になることは、1936年にエッカートとヤングが示しました。文書×単語の行列に使う潜在意味解析(LSA)や、画像の圧縮などに使われます。

2つの関係

平均を引いたデータ行列を特異値分解すると、右特異ベクトル(Vの列)が主成分の方向になり、特異値の2乗を「データ数−1」で割った値が各主成分の分散になります。共分散行列を作って固有値分解しても同じ主成分が得られます。ただ、特異値分解ならデータ行列から直接求められるので、よく使われます。scikit-learnのPCAも、データを中心化してから特異値分解で計算しています。

平均を引かずに特異値分解すると、結果は一般に主成分分析と一致しません。ただしLSAのように、平均を引かずに疎な行列のまま分解する使い方もあり、目的によって使い分けます。

見分けるコツ

  1. 「分散が最大の方向」「寄与率」「主成分」が出てきたら主成分分析、「特異値」「行列を3つの積に分ける」「低ランク近似」が出てきたら特異値分解です。
  2. 2つは競合する手法ではありません。主成分分析は何を求めたいかという目的、特異値分解はそれを計算するための道具、という関係で整理します。
  3. 主成分分析と同じ結果になるのは、平均を引いて中心化したデータ行列を特異値分解したときです。中心化しないで分解すると、一般には主成分分析と別の結果になります。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. 文書×単語の出現回数の行列に特異値分解を使う潜在意味解析(LSA)では、主成分分析と同じく、各列の平均を引いてから分解しなければならない。

    答えを見る

    答え × 誤り

    LSAでは、平均を引かずに行列をそのまま分解するのが一般的です。平均を引くと0の多い疎な行列が密な行列になり、計算の負担が増えます。scikit-learnのTruncatedSVDも中心化せずに分解します。

  2. ユーザー×商品の評価行列に空欄(未評価)が多くても、通常の特異値分解は、空欄を含めたまま計算できる。

    答えを見る

    答え × 誤り

    通常の特異値分解は、すべての要素が埋まった行列を前提にしています。推薦システムでは、観測された評価だけから低ランクの因子を学ぶ行列分解の手法がよく使われます。

  3. 中心化したデータ行列を特異値分解して主成分分析を行うとき、各主成分の寄与率は、特異値そのものではなく、特異値を2乗した値の比で求める。

    答えを見る

    答え ◯ 正しい

    各主成分の分散は、特異値の2乗を「データ数−1」で割った値です。寄与率は分散の比なので、各特異値の2乗を、すべての特異値の2乗の和で割って求めます。

関連問題

1問
  1. #0153特異値分解による低ランク近似難易度 標準・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術8

誤りを報告

ほかの違い比較

違い比較の一覧

表示設定

テーマ
文字の大きさ
問題演習