暇人日記

アラフォーおっさんのコーセラの機械学習の課題を解こうと頑張っています!

Week2の課題でPolynomial=多項式化するとどうなるか?-後半-

Polynomialで予測精度が向上してJが小さくなったか、

Learning Curveの形は変わったか、を

プログラミングしながら検証していきます。

 

f:id:omoshiroamericanews:20200121144124p:plain

まずDataをSetします。

Train setとTest Setの分け方は同じです。

f:id:omoshiroamericanews:20200117144346p:plain

 

プログラミングを続けます。

f:id:omoshiroamericanews:20200121144446p:plain

多項式=polynomialの部分です。

今回は最高が2乗のパターンでやります。

 

f:id:omoshiroamericanews:20200121144509p:plain

多項式化したTraing SetでJを最小にするθを求めている部分です。

 

 

f:id:omoshiroamericanews:20200121144548p:plain

 

Learning Curveを作るための部分です。

赤の点線枠部分でTrain setのm=1,2,3---について、

それぞれ適正θとJを計算している部分です。

緑下線部分でTest setの全Sampleについて、

Train setからでてくるm個の適正θでJを計算しています。

 

f:id:omoshiroamericanews:20200121144650p:plain

 

グラフを作る部分です。

できたグラフです↓

 

f:id:omoshiroamericanews:20200121144723p:plain

が、青の線(Training SetのJ)が見えません。

 

軸のスケールを変えたいと思います。

軸のスケールを変えるのは

axis([0 30 0 4e+10])

を追加すればできます。

 

f:id:omoshiroamericanews:20200121144952p:plain



f:id:omoshiroamericanews:20200121145021p:plain

 

できたグラフです↓

青の線(Training SetのJ)が見えるようになりました。

 

f:id:omoshiroamericanews:20200121145036p:plain

 

2つ観点があるかと思います。

①パフォーマンス評価です。

グラフの形からするとまだ

Underfitting=『予測当たらなさすぎ』のようです

 

②Jの値

前回のグラフでは2e+09くらいで収束していたのが1e+09以下になっているので、

Jが小さくなったのは間違いないようです。

 

ここまで2乗が最高のケースを行い、『予測当たらなさすぎ』だったので、

3乗に増やそうと思いました。

 

3乗が最高のケースにすればどうなるだろうかと思って実験してみたんですが、

なぜかdegree=3にすると、↓のように予測値の精度が悪いです。

 

f:id:omoshiroamericanews:20200121150556p:plain

 

  ちなみにLearning Curveの形です↓

f:id:omoshiroamericanews:20200121151853p:plain

暴れ方がすごいですね。

これは謎です。

実は前々回の日記Learning Curveのfminuncパートの時に

Week4以降でよく出てくるfmincgで実験した時も似たようなことが起こりました。

今後、試行錯誤していく中で解決の糸口が発見できればと思います。

 

今回はここまでです。また次回頑張ります。

 

興味あるテーマは↓ですが、

・Week2のMulti課題(家の価格)についてRegularizationを使ってみる

・Week2のMulti課題(家の価格)についてWeek SVMをしてみる

・Week2のMulti課題(家の価格)についてWeek Anomaly detetionをしてみる

・今回の日記に出たPolynomialで作ったFeatureはPCAで次元を落とせるか?

・今回の日記に出たPolynomialの3乗以上のfminuncは何故エラーになるか

・Week2のMulti課題(家の価格)でなぜfmincgは動かなかったか?

Week3の課題をやりたい気持ちもあるので、どっちをやるか悩ましいです。