主成分分析の意味と計算①
機械学習かっこいい!!→学習前に主成分分析ってのを使ってる人が多いなぁ、私もやってみよ(/・ω・)/
なんてノリで、線形代数も確率論もまともにやってない私が手を出したら大変なことになったので、そんな人たち向けに徹底的に説明するページを作ってみました。(そもそも私は行列が線形代数に含まれることすら知らなかった愚か者でした( 一一))
今回使用するデータ
今回は20人のクラスで、『カエル』『ウマ』『ニワトリ』『ヘビ』についてどれくらい好きか・嫌いかを【-5~5】の間で答えてもらったものについて主成分分析していきます。数人についてまとめたものが下の図になります。
この表を見ると出席番号1番の子(以降①(出席番号〇番の子については◎の形であらわしていきます))は、『ウマ』に対する評価が【5】なのでウマをとても好きだということがわかります。同様に②は『ニワトリ』に対する評価が【-5】なのでニワトリをとても嫌っていることがわかります。
今回扱うすべてのデータについては以下のリンクにあります。
Dropbox - データ.xlsx
主成分分析とは何か
多次元データの持つ情報をできるだけ損なわずに低次元空間に情報を縮約する方法です。
…なんで次元の話がはじまったんだろう、多次元って4次元より大きいの?4次元ポケットまでしか知らないよ、と最初は私も思ってました。では一つ一つ説明していきましょう。
次元とは
次元というのはデータの種類のことを表しています。今回使用するデータでは『カエル』『ウマ』『ニワトリ』『ヘビ』の4種類を扱っているので、4次元のデータということになります。(おそらくMATLABではこれを『変数』と呼んでいます)
これを踏まえると、主成分分析というのはデータの種類がたくさんあるものをできるだけ情報を残したままでデータの種類を少なくする方法ということになります。
なぜ縮約するのか
ではなぜデータの種類を少なくする必要があるのでしょうか。その理由として、これはあくまでも1例ですが、データの分布を見やすくするためというのがあげられると思います。
例えば今回使用するデータは4次元です。でも4次元のグラフって描けませんよね?グラフが書けないのでだいたいの分布をみることができなくなってしまいます。
しかし主成分分析をつかって4次元のデータを2次元や3次元に落とすことで、グラフを書くことができるようになります(厳密には条件があるのですが…)。それによってだいたいのデータの分布をみることができるようになります。楽しい。
まとめ
・主成分分析はデータの種類がたくさんあるものをできるだけ情報を残したままでデータの種類を少なくする方法
・次元はデータの種類のこと
まだまだ全然説明できてない(;'∀')
次回はどのようにしてできるだけ情報を損なわずに次元を縮約していくかどうかについて書こうと思います。
↓良ければクリックお願いします(*'ω'*)励みになります。