AI・機械学習の基本概念

PCA(主成分分析) ぴーしーえー(しゅせいぶんぶんせき)

主成分分析次元削減固有値分散線形変換寄与率
PCA(主成分分析)について教えて

簡単に言うとこんな感じ!

「バラバラな方向に散らばったデータを、一番情報量が多い方向から順に整理し直す」イメージだよ!身長・体重・座高・胸囲などの測定値があっても、結局「体の大きさ」という1つの軸で大半が説明できたりする。PCAはそういう「本当に重要な方向(主成分)」を数学的に見つける手法なんだ!


PCA(主成分分析)とは

**PCA(Principal Component Analysis、主成分分析)とは、多変量データを分散が最大になる方向(主成分)**に沿った新しい座標系に変換する線形次元削減手法です。元の特徴量の間の相関関係を取り除きながら、情報量(分散)を最大限保持した少数の「主成分」に圧縮します。

具体的には、データの共分散行列を固有値分解し、最大の固有値に対応する固有ベクトル(第1主成分)から順に取り出します。第1主成分は「データのばらつきが最も大きい方向」、第2主成分は「第1主成分と直交する方向で次にばらつきが大きい方向」です。

各主成分が元のデータの変動をどれだけ説明するかを寄与率といい、累積寄与率が80〜95%になるような主成分数を選ぶのが一般的です。たとえば「上位10成分で元の100次元の90%の情報を説明できる」という形で使います。


PCAの流れ

ステップ内容
①標準化各特徴量を平均0・分散1にスケーリング
②共分散行列の計算特徴量間の相関関係を行列で表現
③固有値分解共分散行列を固有値・固有ベクトルに分解
④主成分の選択固有値が大きい順に主成分を並べ、上位k個を選択
⑤変換元データを選んだ主成分の方向に射影(変換)

PCAの使い分け

PCAが向いている場面:
  ✅ 特徴量が多く過学習・次元の呪いが心配
  ✅ 多重共線性(特徴量間の相関が強い)がある
  ✅ ノイズ除去をしたい
  ✅ 2〜3次元に落として可視化したい

PCAが向いていない場面:
  ❌ 非線形な構造を持つデータ(→ t-SNE/UMAPを使う)
  ❌ クラス分離を意識した次元削減(→ LDAを使う)
  ❌ 結果の解釈が最優先(→ 元の特徴量の意味が失われる)

歴史と背景

  • 1901年:Karl Pearsonが「データを最もよく表現する直線を求める」という考え方を提案
  • 1933年:Harold Hotellingが主成分分析の数学的枠組みを確立。固有値分解による定式化
  • 1960〜70年代:統計学・心理測定・経済学などで広く使われるようになる
  • 1980年代:コンピュータの普及により大規模データへの適用が実用化
  • 2000年代:カーネルPCAが提案され、非線形なデータへも拡張可能になる
  • 2006年:確率的SVDを使った高速PCA(Randomized PCA)が提案
  • 現在:scikit-learnに標準実装され、機械学習パイプラインの前処理として日常的に使われる。画像圧縮・顔認識・ゲノム解析など幅広い分野で活用

PCAの変換イメージ

PCAの仕組み:分散最大の方向を主成分として選択 変換前:元の座標系(x1, x2) x1 x2 第1主成分 (分散が最大の方向) 第2主成分 (第1と直交) 変換後:主成分軸(PC1, PC2) PC1 PC2 PC1(横方向)に情報が集中→PC1だけで十分 寄与率:第1主成分が全変動の何%を説明するか。累積寄与率80〜95%になる成分数を選ぶ

関連する規格・RFC

規格・RFC番号内容
ISO/IEC 22989:2022AI概念・用語(特徴抽出・次元削減の定義を含む)

関連用語