主成分分析
PCA|Principal Component Analysis
概要(教師なし|次元削減)
主成分分析とは多変量解析手法のひとつで、多数の説明変数を、少数の合成変数(複数の変数が合体したもの)に要約する手法です。私たちが視覚的にイメージできるのは、2次元の平面あるいは3次元の空間までで、変数がそれ以上に多くなると、何と何が連動するか、あるいは無関係か・・といった情報の意味を捉えにくくなります。そこで、複数の変数をまとめて2、3の変数に次元を落としてしまおう・・というのが次元削減の考え方です。
例えば、数学、物理、化学、生物、地理、歴史、国語、英語という8科目の成績(変数)からなるデータを、総合学力(高⇄低)と得意領域性(理系⇄文系)という2つの指標に要約して説明しよう・・というのがそれにあたります。
主成分分析は、より分散の大きな指標に注目します。分散が大きい方がデータ間の比較がしやすいからです(分散が小さい=どのデータも変わり映えしないということで、そのような変数はあまり注目に値しません)。上の例で、例えば「総合学力」の分散が最も大きい場合は、これを「第一主成分」、次に得意領域性であれば、これを「第2主成分」と言います。
参考イメージ:GoogleImage:主成分分析
用語解説
- 標準化
データの標準化とは、データの相対的な位置関係を比較しやすくするために行う数値変換のことで、一般に「平均:0、分散:1」となるようにデータを変換する作業を意味します。
ちなみに、データの最大値と最小値を制限する変換を正規化と言います。一般に「最大値:1、 最小値:0」となるように変換します。
- 固有値
固有値とは各主成分が含んでいる情報の大きさを示す指標です。一般的に「固有値が 1 以上」ある主成分を重要な指標とみなしてこれを採用します。
- 寄与率
寄与率とは主成分だけで元データをどの程度説明できるかを表した数字です。
- 累積寄与率
第2、第3と続く主成分の各寄与率を足した数値です。一般に累積寄与率が80%以上となるところまでの主成分を分析に使います。
- 主成分負荷量
元データの各変数に与えられる係数です。この数値が大きいほど主成分に対して各変数が与える影響が大きい・・ということを意味します。
- 主成分得点
各主成分を軸とした場合の各変数の得点を意味します。主成分分析では一般に2つの主成分を組み合わせた散布図から各変数の位置関係を把握します。
プログラム例
以下に、主成分分析 のサンプルを掲載しています。
ipynb(JupyterNotebook)形式で、GitHubに置いていますが、レンダリングがタイムアウトする場合は、下の nbviewer 経由でご覧下さい。
- 使用しているライブラリ
- numpy:数値計算
- pandas:データ解析
- matplotlib:グラフ描画
- sklearn:主成分分析(PCA)
- 使用しているデータ:IRIS(sklearnに付属)
- Sepal Length(がく片長 cm)
- Sepal Width(がく片幅 cm)
- Petal Length(花びら長 cm)
- Petal Width(花びら幅 cm)
- Species:setosa, versicolor, virginica