全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
14193 3
2014-09-05
rpart包里,除了生成决策树外,还是个剪枝的命令prune,
我想请教下大家,在使用rpart生成决策树的时候,是否已经自带剪枝功能了。??(是不是要配参数?)

还是说自能单独使用prune来剪枝?
我看prune和rpart的命令里,都有一个cp的参数,这个参数不太明白呢,请熟悉的同学指导下~

谢谢~

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-9-5 10:53:25
1,rpart没有自带剪枝功能,需要你根据准则进行判断,这里是SE准则和cp准则。
2,使用prune进行剪枝,命令:
library(DMwR)
library(rpart)
data(algae)
algae <- algae[-manyNAs(algae), ]
rt.a1 <- rpart(a1 ~ .,data=algae[,1:12])
rt.a1
rt2.a1 <- prune(rt.a1,cp=0.0278)
rt2.a1
(Prune a tree-based model using the SE rule,se is       
the value of the SE threshold (defaulting to 1))
根据cp准则选取xerror最小值
或者
set.seed(1234)
rt.a1 <- rpartXse(a1 ~ .,data=algae[,1:12])
rt.a1
根据se准则选取xerror小于xerror+xstd(help(prune))
3,cp is the Complexity parameter to which the rpart object will be trimmed)
printcp(rt.a1)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-9-8 00:43:03
hubifeng? 发表于 2014-9-5 10:53
1,rpart没有自带剪枝功能,需要你根据准则进行判断,这里是SE准则和cp准则。
2,使用prune进行剪枝,命令 ...
谢谢指点~
关于prune的cp选择不是很理解hubifeng兄所说的
一种方法是根据1se rule 对么?
我理解1se rule 应该就是选择xstd最小的,你说的xerror小于xerror+xstd这个不太明白

另一个是使用cp准则么?这个也不太明白呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-15 20:44:23
或者你说的自带剪枝功能指的是它的先剪枝?
如果是的话,先剪枝是通过指定决策树的最大深度、最小样本量、cp值,(rpart()函数的三个参数(cp、minsplit、maxdepth)确定)进行的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群