機械学習
線形代数
主成分分析
確率
次元削減

Python機械学習プログラミングの5.1 主成分分析による教師なし次元削減 に、主成分分析について記載されており、ステップがわかりやすかったため、メモしておきます。

主成分分析の効能

主成分分析は教師なし線形変換法の1つで、最も用いられるタスクは次元削減。
データセットを変換し、元の次元よりも低い次元の新しい特徴量空間を作成する。
その際に、元の高次元データにおいて分散が最大となる方向を見つけ出すことで、次元を削減しつつも、情報量を残しやすくなる。
次元削減することで、計算効率を改善することができる。

主成分分析のステップ

下記の6つがある。

  1. d次元のデータセット(1×d)を標準化する
    • 標準化しないと、100cmか1mか、単位の違いなどによって重要度がブレてしまう。
  2. 標準化したデータセットの共分散行列を作成する。
  3. 共分散行列を固有ベクトル固有値に分解する。
  4. 最も大きいk個の固有値に対応するk個の固有ベクトルを選択する。このkが新しい特徴部分空間の次元数を表す。
    • 2で作成した共分散行列は、固有値が大きい順に並ぶわけではないので、固有値でソートしベクトルを選ぶ必要がある。
  5. 上位k個の固有ベクトルから射影行列W(d×k)を作成する
  6. 射影行列Wを使ってデータセットXを変換し、新しいk次元の特徴部分空間を作成する。(1×dのベクトルに、d×kの行列をかけると、1×kのベクトルになる。)

参考書籍