crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

短時間労働者の給与のデータの分析6 - R言語のknn3関数、k-nrearest neighborモデルで男性か女性かを分類するモデルを作る。

 

www.crosshyou.info

 の続きです。前回はlm関数で男性か女性かを分類するモデルを作りました。正解率は88%でした。

今回はknn3関数でk-nearest neighborsモデルを作り、同じようにやってみます。

まず。knn3関数はcaretパッケージにあるので、caretパッケージを読み込みます。

f:id:cross_hyou:20210410193713p:plain

f:id:cross_hyou:20210410193941p:plain

k = 5は初期設定と同じです。5個のデータでの距離を計算していく、ということですね。

predict関数で予測値を算出します。

f:id:cross_hyou:20210410195404p:plain

table関数で実際の値と比べましょう

f:id:cross_hyou:20210410195509p:plain

正解率を計算します。

f:id:cross_hyou:20210410195624p:plain

正解率は64%です。lm関数で予測したモデルよりも低いですね。

K = 10 にして同じことをしてみます。

f:id:cross_hyou:20210410200642p:plain

正解率を計算してみます。

f:id:cross_hyou:20210410200803p:plain

62%です。よくないですね。

kを2~30までにして正解率を計算してみましょう。sapply関数をつかって、いっぺんにやります。

f:id:cross_hyou:20210410202002p:plain

f:id:cross_hyou:20210410202027p:plain

一番高い正解率とそのときのkは何でしょうか?

f:id:cross_hyou:20210410202341p:plain

k = 14のとき正解率が68%で最高でした。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。