こんにちは。理論編で主成分分析についてはみなさん理解できたと思います。が。本日は少し応用です。
とりあえず復習から始めましょう。
PCAは固有ベクトルへの射影
そうです。たとえば400次元から2次元へのPCAは固有値を大きい方から2つ選び、対応する固有ベクトルに射影です。つまり
軸を新しく定義している
つまり
空間が変わっている

まさにこの図、3次元のデータ(左)にPCAをかけて2次元データ(右)にしている。
軸が異なるどころかその数も変わっていることより空間が変わったことは明らか。
しかし、今回は
次元を保ったまま空間を押しつぶす
をします。
重要なのは次の考え方のみ!

適当に作った例だと
![Rendered by QuickLaTeX.com \[ [1,2,3] \rightarrow [4,-2] \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dc584a6bb3c21ebff48e4a4e2e41620e_l3.png)
が前回のPCAに対し
![Rendered by QuickLaTeX.com \[ [1,2,3] \rightarrow [4,-2, 0]\in H\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-93dad0ca54d6d00ef827ad8de92a65c9_l3.png)
のように次元を保ったまま平面上の点に置き換える。上の図だと

に対し
![Rendered by QuickLaTeX.com \[ a' = c_1v_1 + c_2 v_2 = c_1 \begin{pmatrix} v_{11} \\ v_{12} \\ v_{13} \end{pmatrix} + c_2 \begin{pmatrix} v_{21} \\ v_{22} \\ v_{23} \end{pmatrix} \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-74f974780f6b5ea2d2521d4080520c37_l3.png)
とできる。ただし、

である。

まとめると、
あるベクトルたちの線型結合で全部書き直そう
ということ。上では3次元ベクトル2本

用いて平面を構成した。

を平面H上の点

としようということ、これを全データ点で行う。計算してみよう。
![Rendered by QuickLaTeX.com V = [v_1,v_2]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-ed2fbf2797b1e0689ed6b0914bdeb8cc_l3.png)
とすると

で

が貼る平面状の点を表すことができるので
![Rendered by QuickLaTeX.com \[\|a - Vc\|^2 \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-47bdec981c2bf7ccce83df2879d35593_l3.png)
を最小化するような

を見つければいい。このとき

となる。ここで
![Rendered by QuickLaTeX.com \[\frac{\partial}{\partial x} x^T A x = (A+A^T)x\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-fcc08e5469c88048cdc708fa08106028_l3.png)
![Rendered by QuickLaTeX.com \[ \frac{\partial}{\partial x} a^Tx = a^T, \frac{\partial}{\partial x} x^Ta = a\]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-dab92af4b07ceb927451f144f9ff021d_l3.png)
これらの公式を用いて
(1) 
微分を0とする。
(2) 
従って逆行列をかけることで
(3) 
つまり!
(4) 
が

である。
![Rendered by QuickLaTeX.com \[V(V^TV)^{-1}V^T \]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-97e8f9811a8a92023930938114b4bf65_l3.png)
を
Vの列ベクトル空間がはる空間への射影行列
という。
では数学の時間です。
データ
(m次元)
平面を貼るベクトルを![Rendered by QuickLaTeX.com V=[v_1, \cdots, v_n]](https://research.miidas.jp/wp-content/ql-cache/quicklatex.com-e46609d7a563f924edac12d89f811600_l3.png)
ただし
, 
とする。
目標は
を見つけ出すこと。見つかれば上で導出した射影行列を全データにかければ良い。なんだけど、ちょっと長くなるから次の記事で。
でわ。
READMORE
- http://python.astrotech.io/machine-learning/principal-component-analysis.html#id1
- http://www.asahi-net.or.jp/~jb2y-bk/NaturalSci/math/daenmen.htm