もっと数理を!主成分分析 Python機械学習プログラミング第5章
この本では、あまり主成分分析について数理的な物が書いていなかったので調べた。下に参考にしてわかりやすかった本を紹介した。
まず2次元の時がわかりやすいので、その時について考えて、一般的な物について考える。
主成分分析
互いに相関のある変数について観測された多次元データの持つ情報をできるだけ失うことなく、元の変数の線形結合で表される新たな変数へ要約するための手法である。
また、
多次元データに内在する情報という概念を分散でとらえて、情報をできるだけ失うことなく新たな変数で定義していく方法である。
と下に載せた多変量解析入門に書いてあった。
つまり、あるデータの分布がある時に、分散の大きい方向を軸にとってパラメータとした方が、全体として分類しやすくなるのではないかということである。分散が大きいというのは、それほど、個々のデータに差がある分布になるからだ。
二次元の場合
パーセプトロンなどでの全結合層を線形変換ととらえると、
となる。
このへの射影の線形変換を考えて、この時のの分散が最大化する時のを求めたい。はデータの番号
次に分散を求める。
ここで最後の行少し飛んだと思うが、行列の計算するだけ。
そうすると最後の
の最大化に帰着する。
まず、の条件を付ける。なぜなら、制限しない場合となるからである。そして、ラグランジュの未定乗数法をつかうため、ラグランジュ関数を作る。
とする。
ラグランジュの未定乗数法についての説明はこちら↓
yosuke-programing.hatenadiary.com
ここで、ベクトルによる微分を行った。
を用いた。
これらのベクトルの微分の公式の証明、全般的なベクトル、行列の微分はこちら↓。
yosuke-programing.hatenadiary.com
話を元に戻すと、
また、
が最大となるためのは、固有ベクトル である。また、に左からをかけると、
最後は、条件であるを用いた。
よって、最大の分散を求めるのは、最大の固有値を求めることに帰着した。またこの時の第一主成分は、
となる。
次に、第二主成分を求める。第二主成分は、 以外で、の分散を最大化してなおかつと直交し()、となるベクトルである。二次元だと正直直交するベクトルは、一個しかないように感じるが、三次元などを想像すると、第一主成分が決まったからといって、その成分に直交するベクトルは、その成分に対して回転するように無限にある。
なので今回は、一般てきに求める準備として行う。上と同様に、ラグランジュの未定乗数法より、
で偏微分すると、
を求めたいので左からをかけてよりをとりだすと、
も用いた。
より、
よって、
となり、第一主成分と同じ形になった。
つまり第2主成分は、
となる。
まとめると、
2次元以上の一般的な時
2次元とほとんど変わらず、おこなう。n次元のある第k番主成分は、
となる。で微分して、=0にすると
となる。求めたいのはすべての についてである。
nを考えるとを左からかけると、
最後のシグマ内の以外の成分は、ベクトルはすべて直交し0になる。すべてのでをかけるのを繰り返せば、すべてのになることがわかり、二次元と同じになり、
となる。
参考図書・資料
参考図書一覧↓
yosuke-programing.hatenadiary.com
yosuke-programing.hatenadiary.com
Amazonはこちら↓
[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
- 作者: Sebastian Raschka,Vahid Mirjalili,福島真太朗,株式会社クイープ
- 出版社/メーカー: インプレス
- 発売日: 2018/03/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る