暇人日記II

Courseraの課題で学習できたことの応用を書いていきます!

初心者コンテストに挑戦③ Octaveで計算

前回、予測の基データをOctaveに読み込ませるところまでやりました。

 

なので今回はその基データで予測を行ってみたいと思います。

 

予測方法はCourseraのMachine Learning講座のWeek3と同じ方法を踏襲しました↓

 

f:id:omoshiroamericanews:20200814204033p:plain

 

これで最適θが出るので、そうしたら予測して精度を↓の式で見てみたいと思います

 

f:id:omoshiroamericanews:20200814204246p:plain

 

やってみました↓ 精度は92.9%ですね。

 

f:id:omoshiroamericanews:20200814204538p:plain

 

 

これは27,100のデータすべてを予測対象にしたものになります。

 

Overfitしているかもしれないので、Cross Validationする必要があるはずです。

 

ただ、この最適θを『theta27100』と名付けて結果が不明になっているtestデータを

予測してみたいと思います。

 

やってみたらだめでした。

trainデータは27100X18(y込み)の基データで文字を数字に置き換えて

27100X38(y込み)でした。

なので最適θ『theta27100』は38X1でした。

 

testデータは18050X17の基データで文字を数字に置き換えて

18050X38でした。yは入っていないので、testデータはtrainデータより1行多いです。

最適θは38X1のベクトルだったので、

次元が合わず計算不可という結果が出てしまいました。

 

trainデータに1行追加して27100X39(y込み)にして、

最適θを39X1にしてtestデータの18050X38に計算できるようにします。

 

計算が終わったので投稿してみます。

 

0.85が合格のところを0.56でした。

 

今回はここまでです。

次回はCross Validationすることとλの調整をすることを行いたいと思います。

Neural Networkを使うとさらに精度が上がるかもしれませんが、

とりあえずWeek3の解き方の中で調整を行います。