とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R言語】決定木分析

rpart関数で決定木分析

機械学習には二つの目的があると思っている。

  1. 予測
  2. 要因分析(推測)

製造業では後者の要因分析が目的になることが多いと考える。
だって技術者としては何がどのようにどれくらい影響を及ぼしているか
カニズムを解明したいでしょ?

#決定木
install.packages("rpart")
install.packages("rpart.plot")
install.packages("partykit")
install.packages("rattle")

library(rpart)
library(rpart.plot)
library(partykit)

rpart_acs <- rpart(Income ~ NumWorkers + FoodStamp + OwnRent + NumVehicles + 
                     NumChildren + Insurance + NumRooms, data = acs, method = "class")

rpart.plot(rpart_acs, type = 1, uniform = TRUE, extra = 1, under = 1, faclen = 0)

f:id:M_taka072:20190106230228p:plain

rpart.plotの引用は下記を参考にしてください。
https://www1.doshisha.ac.jp/~mjin/R/Chap_19/19.html

フルモデルから決定木分析をしてみる

#フルモデルから決定木分析をしてみる
#fancyRpartPlotで可視化してみる
library(rattle)
rpart_acs_full<- rpart(Income ~ .- FamilyIncome, data = acs, method = "class")
fancyRpartPlot(rpart_acs_full,sub="")

f:id:M_taka072:20190106233340p:plain
fullmodelから決定木分析

・考察
スッテプワイズ法で絞り込んだ変数が選ばれている。
Incomeがyesとなる主要因はFoodStampであることがわかる。