暇人日記

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

Coursera Machine Learinig Week7 課題 苦闘日記④

今回も引き続きdataset3Params.mに取り組みます。

 

f:id:omoshiroamericanews:20191122113032p:plain

 

前回の宿題は↓でした。

②ValidationSetを評価しているのに、SVMの元データがX,yでいいのかということ

 

については64通りすべての計算をセット1;X,y    セット2;Xval,yvalで

行ってSubmitで正解を見てみることにします。

 

64通りの計算ですが、Cの8通り X sigmaの8通りなので、

大体このような内容を計算したいです。

cvec,sigmavecとしたのはWeek6のProgram Assignmentの

Lambda_vecと考え方を合わせました。

 

f:id:omoshiroamericanews:20191106114114p:plain

ここでやりたいのは

C  sigma  Error

0.01 0.01  XX

0.01 0.03  □□

0.01 0.1  △△

 *  *   *

 *  *   *

のように64通りを表記して最も値の小さいErrorを

出しているCとsigmaの組み合わせを見つけたいということです。

 

Loopで計算させた後に一つ一つどうやって計算結果を並べるのか、

Week6を参考に考えたいと思います。

 

Week6では次のような式でグラフ化していました。

 

f:id:omoshiroamericanews:20191106115114p:plain

For Endの中は

Lambda=lambda_vec、Error_train(i)、Error_val(i)

で計算して取り出すときは

Lambda_vec、Error_train、Error_val

で取り出している

 

この64通りの場合はError(ij)と表記したらいいのだろうか。

試してみたがError(ij)は機能しなかった。。。

 

Error(i)だと

f:id:omoshiroamericanews:20191106120540p:plain

なぜかErrorが1X8のベクトルになっている。。。

期待したいのは1X1だから何か間違えています。

 

(i)をとってErrorにしたら1X1のベクトルになりました。

8通りはできました。

後はどうやってもう8通り足して8X8=64通りを一覧にするかです。

 

それにしてもError(i)はなぜ1X8のベクトルになってしまうのだろう??

いろいろ試しましたがError(i)は1X8になるのでダメだと判断しました。

f:id:omoshiroamericanews:20191107011253p:plain

こういう式になるのですが、これだとループしたシュミレーション64通りを

並べて表示できません。

f:id:omoshiroamericanews:20191107011544p:plain

このように延々と計算結果が羅列されます。

 

次回考えます。