crosshyou

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

短時間労働者の給与のデータの分析8 - R言語のrpart関数でdecision tree(決定木)モデルを作り、男性、女性を予測する。

 

www.crosshyou.info

 の続きです。

今回はrpart関数で決定木モデルをつくり、男性、女性を予測してみます。

rpartパッケージの読み込みをします。

f:id:cross_hyou:20210411190619p:plain

rpart関数でモデルを作ります。

f:id:cross_hyou:20210411190729p:plain

plot関数とtext関数でモデルをグラフであらわします。

f:id:cross_hyou:20210411193543p:plain

f:id:cross_hyou:20210411193558p:plain

wageが1082よりも小さくて、yearが3.45上だと0 すなわち女性です。

wageが1082よりも大きくてageが50.1以下で産業コードがbdejm以外のときは0.375なので女性です。

pred関数でdf_testのデータから予測値を出して、結果を見てみましょう。

f:id:cross_hyou:20210411194147p:plain

正解率は

f:id:cross_hyou:20210411194433p:plain

65%です。

あまりよくないですね。

caretパッケージのtrain関数でcpのパラメータを調節してみます。

f:id:cross_hyou:20210411195715p:plain

値が2つしかないからclassificationなのか?って警告が出ています。

データセットをdf_train_factorのほうでやってみましょう。

f:id:cross_hyou:20210411200606p:plain

こんどは警告が出ないです。どのcpが一番いいのかplot関数でみてみます。

f:id:cross_hyou:20210411200650p:plain

f:id:cross_hyou:20210411200703p:plain

0.03あたりが一番いいようです。

plot関数とtext関数でモデルを視覚化します。

f:id:cross_hyou:20210411201110p:plain

f:id:cross_hyou:20210411201123p:plain

使われている変数は、wage, year, ageの3つです。

confusionMatrix関数で結果の表と正解率をみてみます。

f:id:cross_hyou:20210411201609p:plain

正解率は79%でした。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。