とある技術者の徒然草

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

【R】不均衡データを是正して決定木分析

SMOTEアルゴリズムで不均衡データを是正

 

是正前のIncomeの比率は

FALSE TRUE 
718 22027

不均衡データを是正すると要因が変わるか確認する。

 

#不均衡データであることがわかる
#smoteで不均衡データを是正する
#install.packages("DMwR")
library(DMwR)

acs_smote <- SMOTE(Income ~ NumWorkers + FoodStamp + OwnRent + NumVehicles + 
NumChildren + Insurance + NumRooms, data = acs2)

table(acs_smote$Income)

rpart_acs_smote <- rpart(Income ~ NumWorkers + FoodStamp + OwnRent + NumUnits + 
NumVehicles + Language + Insurance + HeatingFuel + NumChildren + 
NumRooms + YearBuilt, data = acs_smote, method = "class")

rpart.plot(rpart_acs_smote)
plot(as.party(rpart_acs_smote))

Incomeの比率を確認

FALSE  TRUE 
 2154  2872 

f:id:M_taka072:20190109205133p:plain  f:id:M_taka072:20190109205354p:plain

・結果
numworkersが主要因となった