www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI の Breast Caner Wisconsin (Diagnostics) のデータ分析5 - R の nnet パッケージでニューラルネットワークの手法で予測

Bing Image Creator で生成: Long wide view of alps mountains and small town, photo style

 

www.crosshyou.info

の続きです。

今回は、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% でした。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。