古典的機械学習

主成分分析(PCA詳細) しゅせいぶんぶんせき

主成分分析PCA特徴抽出次元削減固有値分解
主成分分析(PCA詳細)について教えて

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

古典的機械学習のセクションでのPCAは、次元削減の前処理だけでなく「データの構造発見・ノイズ除去・特徴抽出」のための重要な分析手法として使われるよ。「顧客の100項目のアンケートを少数の主成分に圧縮して傾向を分析する」みたいな使い方だ!


機械学習における主成分分析の役割

主成分分析(PCA)は、次元削減の前処理(→PCAを参照)だけでなく、古典的機械学習のパイプラインにおける特徴抽出手法としても重要です。


機械学習での主要な活用シーン

活用シーン内容
前処理・次元削減多重共線性の解消、高次元データの圧縮
可視化高次元データを2D/3Dでプロット
ノイズ除去小さな主成分(ノイズ)を切り捨て
特徴抽出元の変数の意味を保った合成特徴量の作成
外れ値検出主成分空間での距離(マハラノビス距離)を利用

Kernel PCA:非線形への拡張

標準PCAは線形変換しかできません。Kernel PCA は SVMのカーネルトリックと同様に、高次元空間への写像を介して非線形な主成分を抽出します。

from sklearn.decomposition import KernelPCA

kpca = KernelPCA(n_components=2, kernel='rbf', gamma=0.04)
X_kpca = kpca.fit_transform(X)

Incremental PCA:大規模データへの対応

大きなデータセットをメモリに乗せられない場合、Incremental PCA(ミニバッチPCA)が使えます。

from sklearn.decomposition import IncrementalPCA

ipca = IncrementalPCA(n_components=2, batch_size=200)
for X_batch in batches:
    ipca.partial_fit(X_batch)

PCAと因子分析の違い

PCAとよく混同される因子分析(Factor Analysis)との違い:

比較項目PCA因子分析
目的分散最大化(データ圧縮)潜在構造発見
仮定なし測定誤差を仮定
用途前処理・可視化心理学・社会科学

歴史と背景

  • 1901年:ピアソンが発表
  • 現在:scikit-learnのPCAクラスで即座に実行可能な定番手法

関連用語