の続きです。
今回は、「Machine Learning with R: Expert techniques for predictive modeling 3rd Edition」という本を参考にして、k-NN algorithmで人口がLargeがどうかを判定してみたいと思います。
コロナウイルスの影響で本屋さんに行けないので、Packtで購入した本です。まだ半分くらいしか読んでいません。
Machine Learning with R: Expert techniques for predictive modeling, 3rd Edition (English Edition)
- 作者:Lantz, Brett
- 発売日: 2019/04/15
- メディア: Kindle版
k-NN algorithmはk-Nearest Neighbor algorithmの略だそうです。classパッケージの中のknn関数 を使いますので、classパッケージを読み込みます。
k-NN algorithmを実行するために、トレーニング用のデータフレームとテスト用のデータフレームを用意します。トレーニング用のデータは、2015年度のデータで、テスト用のデータは2011年度のデータにしました。
k-NN algorithmは各変数を標準化したほうが良い結果が出るらしいので、scale関数で標準化します。
最小値が0.000、最大値が1に標準化しました。
同じように、2011年度のデータから必要な変数を抜き出します。
こちらも同じように、scale関数で標準化します。
これでknn関数を使う準備完了です。
早速、knn関数を実行してみます。
confusionMatrix関数でどれだけ予測が正確かを見てみます。
予測でLargeでないと判断し、実際もLargeでなかったのが33個、予測でLargeと判断し、実際もLargeだったのが8個です。正解率は、(33+8)/47=87.23%です。
どこがLaregeと予測したのか見てみましょう。
埼玉県、千葉県、東京都、神奈川県、愛知県、大阪府、兵庫県、福岡県の8つは正しくLargeと判断できました。京都府と沖縄県を間違ってLargeと判断して、北海道、茨城県、静岡県、広島県を間違ってLargeでないと判断していますね。
今回は以上です。