如何利用R軟件建立決策樹模型?
如何利用R軟件建立決策樹模型
1、根據Age、Number、Start三個變量對kyphosis進行分類。
#程序包
library(rpart)
library(rpart.plot)
library(rattle)
#數據
data(kyphosis)
head(kyphosis)
2、定義參數并建立模型。
#參數
control <- rpart.control(minsplit=10,
minbucket=5,
xval=10,cp=0.1)
#決策樹模型
model<- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis,
method="class",control=control,
parms = list(prior = c(0.6,0.4), split = "information"))
3、查看模型結果。summary可以查看模型的詳細過程。
summary(model)
asRules(model)
4、繪制決策樹圖。可以從圖中看到每一類的觀測數及占總數的比例。
fancyRpartPlot(model)
5、查看交叉驗證結果,并繪圖。
model$cptable
plotcp(model)
grid()
可以看到結果中有交叉驗證的估計誤差(“xerror”),以及標準誤差(“xstd”),平均相對誤差=xerror±xstd 。
6、根據交叉驗證結果,找出估計誤差最小時的cp值,并重新建立模型。
#選擇交叉驗證的估計誤差最小時對應的cp
xerr <-model$cptable[,"xerror"]
minxerr <- which.min(xerr)
mincp <-model$cptable[minxerr, "CP"]
#新模型
model.prune <- prune(model,cp=mincp)
fancyRpartPlot(model.prune)
擴展資料決策樹算法中,會對數據特征不斷提問,然后根據每次回答逐步對數據進行分類。
節點(Node)的分類:節點分為根節點(Root Node)與葉節點(Leaf Node)。其中根節點位于決策樹最頂部,它是分類的起始點,位于最底端且沒有子節點的節點成為葉節點。
在決策樹中,對各節點提問題,并根據回答對節點進行分叉,從而實現分類數據的目的。‘不純度’(impurity)用作評估數據分離程度的標準,將一個節點數據劃分為2個子節點時,最好的提問能夠使子節點的不純度降至最低。
節點中含有的分類越多,不純度越高。反之,只有一個分類的時候,不純度最低。
原文鏈接:https://blog.csdn.net/RH_Wang/java/article/details/81703151