R笔记20181030回归树

参考数据挖掘与R语言
一、rpart包中,有建立回归树模型的指令:rpart

rt<-rpart(formula, data)

有关formula的一些注记

~分隔,使响应变量在左边,解释变量在右边,例如y=x+y+w可表示为y~x+y+w
+分别表示解释变量
表示交互式变量,例如y=x*z可表示为y~x:z
*几个变量间的所有交互式表达式y=x+w+z+x * w+x * z+z * w+x * w * z可以简写为y~x * w * z
^denoted the interactions up to a specified degree,such as y~(x+z+w)^2 expand to y=x+w+z+x * w+w * z+z * x
..代表数据集中除响应变量外的所有变量,例如y~. 表示y与data中所有变量的和
-在等式中移掉某变量
-1表示函数从原点出发,截距项为0
I()将括号中的元素合并为一个新的变量,例如:y~s+I(x^2+w)中相当于y=s+z)
function数学函数也能用进此方程中,例如log max mean等

创建包含很多解释变量的公式,同下:

xnam <- paste0("x", c(1:10, 15, 20:25))
as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))

二、画回归树

方法一:plot(rt)+text(rt)
方法二:DMwR包中的prettyTree(rt)函数可直接绘出好看的R回归树图形

三、剪枝
1、事前剪枝
在构造回归树时,设定一定的停止原则,repart函数中有:偏差小于某一给定界限时(cp);节点中样本数量小于某个给定界限时(minsplit);树的深度大于某一给定界限时(maxdepth)等控制参数。更多细节见control
2、事后剪枝

printcp(rt)

返回每一个节点的cp值
通过规定cp值,重新建立回归树
prune中还返回了一个相对误差rel error(和根节点相比),xerror,xstd为应用10折交叉验证的平均误差和平均标准差。

prune(rt,cp=0.05)

snip.rpart()进行交互式剪枝
(1)指出要剪枝的节点号

snip.rpart(rt,c(4,7))

表示剪掉了标号为4和7的节点
(2)交互式剪枝

prettyTree(rt)
snip.rpart(rt)

先画出回归树,用鼠标在图形上交互式双击,即可完成剪枝,
四、一些补充
10折交叉验证(10-fold cross-validation):是一种用来测试算法准确性的一种方法,将数据分为10份,轮流将其中九份作为训练集,剩下一份作为测试集,计算出相应的正确率或错误率,再计算正确率或错误率的均值。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值