More than 1 year has passed since last update.

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のベクトルになる。)


参考書籍