Bing Image Creator で生成: Long wide view of alps mountains and small town, photo style
の続きです。
今回は、R の nnet パッケージを利用して、ニューラルネットワーク で予測してみようと思います。
はじめに、nnet パッケージ読み込みます。
nnet() 関数がニューラルネットワークの関数です。
nnet(formua, data, size, decay) という構文で、パラメータが size と decay の2つあります。
そこで今回は、パラメータの組み合わせを expand.grid() 関数で作成します。
size は 1, 2, 3, 4 の4つ
decay は 0.1, 0.01, 0.001, 0.0001 の4つにしました。
なので、組み合わせは 4 x 4 = 16 です。
正解率を計算する関数を作成します。
この関数が正しく動いているかテストします。
calc_acc() 関数の結果は、0.9505495 です。size = 1, decay = 0.1 で計算した結果も 0.9505495 です。同じですね。
別のパラメータでも試してみましょう。
size = 2, decay = 0.01 で試しました。
どちらも 0.967033 で同じです。
calc_acc() 関数は正しく動いているようですね。
次は、正解率入れる箱を作っておきます。
for loop で16個のパラメータでの正解率を計算して、acc_results に保存します。
計算結果がたくさんプリントアウトされてしまいましたので、省略してます。
acc_results をグラフにして、どのパラメータの組み合わせが一番正解率が高いかをみてみましょう。
12番目と15番目が一番正解率が高いです。
それぞれの前後の正解率を勘案して、15番目を使いましょう。
size = 3, decay = 0.0001 の組み合わせです。
これで、モデルを fit します。
predict() 関数で予測します。
正解率はどのくらいでしょうか?
正解率は、96.5% でした。
今回は以上です。
次回は、
です。
初めから読むには、
です。