初心者コンテストに挑戦③ Octaveで計算
前回、予測の基データをOctaveに読み込ませるところまでやりました。
なので今回はその基データで予測を行ってみたいと思います。
予測方法はCourseraのMachine Learning講座のWeek3と同じ方法を踏襲しました↓
これで最適θが出るので、そうしたら予測して精度を↓の式で見てみたいと思います
やってみました↓ 精度は92.9%ですね。
これは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の解き方の中で調整を行います。