- 主成分分析(PCA)とは何か
- 主成分分析のアルゴリズム
- 主成分の選び方
主成分分析(PCA)とは
主成分分析(PCA)とは、
です。
主成分分析では、変数間に相関のあるデータを情報を減らさずに圧縮します。
これは、複雑なデータの変数を減らして解析をしやすくすることができます。
例えば、「国語力」「数学力」「記憶力」の3つの情報を圧縮して、新しく「賢さ」という変数を作るようなことをします。
主成分分析は、元のデータの変数から新たな変数を構成する方法で次元削減を行っています。
主成分分析する方法
主成分分析で変数を圧縮するためには、対称データにおける方向と重要度を見つけます。
データの分散が大きいほど重要であると定義して、重要度を探索します。
主成分分析でx,yの2つの変数を1次元に圧縮すると、分散の大きいベクトルが新たな変数(主成分)となります。
このときの線の向きがデータの方向、長さが重要度を表しています。
2つめ以降の主成分は、今までの主成分に直行する重要度の1番大きいベクトルを新たな変数(主成分)とします。
第2主成分は第1主成分に直行しています。
主成分分析のアルゴリズム
主成分分析は以下の処理を行っていきます。
- ステップ1共分散行列を計算する
内容
- ステップ2分散共分散行列に対して、固有値・固有ベクトルを求める
内容
- ステップ3各主成分方向にデータを表現する
内容
ステップ1:共分散行列を計算する
共分散行列は、各成分に共分散を並べた行列です。
\( A = \left( \begin{array}{cccc} σ_{11} & σ_{12} & \ldots & σ_{1n} \\ σ_{21} & σ_{22} & \ldots & σ_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ σ_{n1} & σ_{n2} & \ldots & σ_{nn} \end{array} \right) \)
\(σ_jk = \frac{1}{n}\sum ^{n}_{i=1}\left( x_{j}^{(i)} -u_{j}\right)\left( x_{k}^{(i)} -u_{k}\right)\)
ステップ2:固有値・固有ベクトルを求める
\(Ax = λx\)となるような固有値\(λ\)と固有ベクトル\(x\)を求めます。
固有値の大きい順に並べた固有ベクトルが、第1主成分、第2主成分、…と対応しています。
固有値・固有ベクトルを求める方法はこちらの記事に記載しています。

ステップ3:各主成分方向にデータを表現する
求めた主成分を新たな軸としてデータを表現します。
各種成分ごとに計算される固有値を固有値の総和で割ると、主成分の重要度を表すことが出来ます。
これを寄与率といい、各種成分が元データをどのくらい表現しているかを表します。
主成分の選び方
主成分分析によって元データの変数を新たな軸である主成分で表現することが出来ました。
主成分は第1主成分、第2主成分、…と寄与率の大きい順に並んでいます。
累積寄与率を計算することで、何番目の主成分まで使うと元データの何%の情報まで表現しているのかを知ることが出来ます。
主成分の選択は、「変数を何個にする」「累積寄与率は80%以上にする」といったような方法で決定します。
まとめ
主成分分析(PCA)とは、次元削減の手法の1つで、たくさんの変数を持つデータを少数の変数で表現するアルゴリズムです。
主成分分析では、変数間に相関のあるデータを情報を減らさずに圧縮します。
これは、複雑なデータの変数を減らして解析をしやすくすることができます。
コメント
[…] 機械学習ナビ […]