- Video⑧Principal Component Analysis Problem Formation
- Video⑨Principal Component Analysis Algorithm
- Video⑩Reconstruction from Compressed Representatation
- Video⑪Choising the Number of Principal Conponents
- Video⑫Advice for Applying PCA
Video⑧Principal Component Analysis Problem Formation
背景の説明かと思います。
「1次元に落とし込むときは1本のベクトルの直線に落とし込む、
2次元に落とし込むときは2本のベクトルの面に落とし込む。
もちろんProjection Errorを最小にしながら」
がメインだと思います。
あとは「PCAはlinear Regressionとは違う」がポイントでした。
確かに絵を見たときにlinear Regressionと同じかなぁと思っていたので、
説明してもらえてよかったです。
PCAは直線への最短距離で、linear RegressionはTraining Setのyとの距離
だから違うということですね。
Video⑨Principal Component Analysis Algorithm
まずはfeature scaling/mean normalizationで
各xの値を補正します
そしてこういうことをしますと説明されてました。
(数式の意味は分かりませんが)
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
まずSigmaをこの式の通り計算します。
x かけるxTなのでnX1かける1Xnでnxnのベクトルになります。
Sigmaはnxnのベクトルにしておくのがポイントだと思います。
個人的にはxは(x1、x2、x3、x4・・xn)という横一列のベクトルだと思っていたので、xかけるxTは1XnかけるnX1で1X1になってしまう気がします。
課題をするときに要注意です。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
そしてnxnベクトルのSigma をsvdという上の関数に放り込みます。
何が計算されているかはさっぱりわかりませんが笑、
とにかくUもnxnのベクトルで、そのベクトルから1-k列を取得して、
nxnだったベクトルをnxkのベクトルにします。
数式ではこう表現します(課題で役立ちそうです)
このnxkのUreduceがK次元に落とし込んだベクトルかというと、
そういうことではなく、これをxにかけるということです。
UreduceをTしたkXnとnX1のxをかけるとkx1になるので、
nx1でn次元だったxがkx1のk次元に落とし込まれるという説明だと理解しました。
課題の時に役立ちそうな一覧がこちらですね。
Feature Scaling/Mean Normalizetionをやってから↓を実行するという流れですね。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
Video⑩Reconstruction from Compressed Representatation
Video⑨でn次元のものをk次元に落とし込んだベクトルを
n次元に戻す方法の説明でした。
逆に計算するのでUreduceのnxkのベクトルにkx1のベクトルをかけて
nx1に戻すということですね。
appproxと書いてあるので完全に同じには戻せないのかなと思いました。
Video⑪Choising the Number of Principal Conponents
このビデオはいくつのKにするのが適切なのかを
判断するための方法について説明してくれていると思います。
元々Projection Errorを最小にしながら、次元は落とし込むものという
話だったので、このVideoでは「最小」が一般的に1%くらいという話がされます。
元々のxとProjectionから復元したxapproxの差が1%以下ということで
↓の式が書かれています。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
この式をK=1から順番に計算していって1%以下になったkが
適切なkということです。
例ではk=17で初めて1%以下になったので、17が適切という例でした。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
えっ、またループさせるの!?
と思いました。
ループ履歴取り出しはWeek7の課題で習得したつもりですが、
苦手意識があります。
と思ったら、他の方法が説明されて
k次元に落とし込むときにでてきたこの式のSがなんと役に立つとのこと!
Sはこういう斜めの部分に数字があり、ほかは0のベクトルということで、
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
nまでありますがK次元に落とし込むときと同じように1-k番目までをとって
次の割り算が0.01でもいいということです。
(出典;『Coursera Machine Learning』 By Mr. Andrew Ng)
Video⑫Advice for Applying PCA
・PCAはsupervised Learningのスピードアップにも使えるということ
・PCAはデータ削減やスピードアップやグラフ化することに使えるということ
・Overfitするのを避けるために次元を削るというような使い方はしないということ
Overfitを避けるためにはregularizationを使う方がいいということ
以上がWeek8 Videoの自分なりのまとめです。
前回も紹介しましたがわかりやすいのはこちら↓かと思います笑
次回は課題に取り組みます!