【发布时间】:2018-07-04 14:17:55
【问题描述】:
我是一名 SAS 用户,目前正在研究如何使用 R-package 制作决策树。
我确实有一个与每个节点相关的很好的发现,但现在我面临 3 个问题:
我可以从一个特定的变量(从上到下)开始,比如性别之类的分类变量吗? (我是在 FICO-Model builder 中完成的,但现在我没有了)
我有一个二进制 var(gender:1-Male/0-Female),但节点分裂为 0.5?(我尝试将其更改为因子,但没有工作?我还有一个 var" AGE”,我应该将类型更改为“xxx”而不是“numeric”吗?)
基于 cp 值(下表),我设置 0.0128 来修剪树,但只剩下两个 var,我可以选择保留特定的 var 吗?(我确实玩了 cp 的数字,但结果不变)
#tree
library(rpart)
library(party)
library(rpart.plot)
#1
minsplit<-60
ct <- rpart.control(xval=10, minsplit=minsplit,minbucket =
minsplit/3,cp=0.01)
iris_tree <- rpart(Overday_E60dlq ~ .
,
data= x, method="class",
parms = list(prior = c(0.65,0.35), split = "information")
,control=ct)
#plot split.
plot_tris<-rpart.plot(iris_tree, branch=1 , branch.type= 1, type= 2, extra=
103,
shadow.col="gray", box.col="green",
border.col="blue", split.col="red",
cex=0.65, main="Kyphosis-tree")
plot_tris
#summary
summary(iris_tree)
#===========prune process=========
printcp(iris_tree)
## min-xerror cp:
fitcp<-prune(iris_tree, cp=
iris_tree$cptable[which.min(iris_tree$cptable[,"xerror"]),"CP"])
#cp table
fit2<-prune(fitcp,cp= 0.0128 )
#plot fit2
rpart.plot(fit2, branch=1 , branch.type= 1, type= 2, extra= 103,
shadow.col="gray", box.col="green",
border.col="blue", split.col="red",
cex=0.65, main="Kyphosis fit2")
【问题讨论】:
标签: r decision-tree rpart party