陳再說
D4SG_台北市社會局脫貧專案
4 min readJul 15, 2018

--

  1. 決策樹 (Decision Tree)

將資料屬性由多個決策點區分成數個群組,目標使群組內樣本的應變數盡量相同,藉由決策樹的路徑觀察各屬性與應變數的關聯,並達到預測的效果。

決策樹分析結果

由以上決策樹圖可發現,最首要的決策變數為有無身心障礙人口,其中無身心障礙人口且無學齡前人口的家戶中,若無老年人口有91%的比例能夠脫貧,但若有老年人口且列計人數小於3,則在訓練樣本中沒有該類型的家戶順利脫貧。

社會局能夠由決策樹得知各類型家戶自主脫貧的可能性,分配較少資源於能夠自主脫貧的家戶,有效將資源集中於須倚賴社會局介入才能脫貧的家庭。

### Using R for Decision Tree
ibrary(rpart)
library(rpart.plot)

tree<-rpart(脫貧~., data = data, minsplit = 5, maxdepth = 6, cp = 0.007)
summary(tree)prp(tree, faclen = 0, fallen.leaves = T, shadow.col = "gray", type = 1, family = "MicrosoftYaHeiMono")

2. 隨機森林 (Random Decision Forests)

顧名思義即為多個決策樹所形成的分類器。重複地隨機挑取部分屬性與樣本來生成多棵決策樹,每個決策樹各會產生對應的預測值,再以預測值的眾數作為隨機森林的輸出。

由於進行了多次重複抽樣,一般而言隨機森林的準確度優於決策樹,並且可透過各決策樹中以各屬性切分時所減少的亂度,計算出平均值來作為各屬性的重要性,因此最終我們以隨機森林的輸出做為預測結果,並僅挑選重要性較高的屬性來產生決策樹圖。

隨機森林預測準確率

如以上表格所示,隨機森林的整體預測準確度達到了87.19%,但被預測為無法自主脫貧的家戶中,實際上能脫貧的比例仍略高,可嘗試調整Penalty Matrix或使用XGBoost,或許能夠增進推薦的效果。

屬性重要性排序

分析結果顯示,符合參加方案資格的家戶中,居住區與身心障礙人口為影響脫貧率最重要的因素,其次為各家戶的列計與輔導人數。

除了以現有的專案建立推薦系統外,將來要設計新的脫貧專案時,可特別針對不同居住區與身心障礙人口進行規劃。

### Using R for Random Decision Forest
library(randomForest)
library(rpart)
library(rpart.plot)
library(ROSE)
data <- poverty[,c("組別","脫貧","類別變化","居住區","住宅","列計人口數","輔導人口數",
"身心障礙","原住民","外籍配偶","單親","學齡前人口_100",
"在學人口_100","工作人口_100","老人人口_100")]

###脫貧(Yes or No)為結果變量
data_over<-ovun.sample(脫貧~., data = data, method = "over")$data
randomtree_over<-randomForest(factor(脫貧)~., data = data_over[,-c(1,3)])
randomtree_over$importance
randomtree_over$confusion

--

--