在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
参考自【数据挖掘与R语言】 rpart包可实现回归树。通常分为两步建立回归树:1.生成一棵较大的树 2.通过统计估计删除一些结点来对树进行修剪。 回归树基础实现library(rpart) rpart(y~.,data=data1) 参数形式与lm()函数的参数形式相同
图形化展示: plot(rm) text(rm)
rpart()函数构建树时,满足下列条件,树构建过程将结束: 1、偏差的减少小于某一个给定界限值时; 2、当结点中的样本数量小于某个给定界限时; 3、当树的深度大于一个给定的界限值 这3个界限值由rpart()函数中的三个参数(cp、minsplit、maxdepth)来确定。默认值为0.01、20、30 修剪方法rpart包中实现了一种复杂度损失修剪的修剪方法 这个方法使用R在每个树结点计算的参数值cp,这种修剪方法试图估计cp值以确保达到预测的准确性和树的大小之间的最佳折中。 可用printcp()函数可生成回归树的一些子树,并估计这些树的性能。
plotcp(rm)
由rpart()函数建立的回归树是上面列表中的最后一个树(树9)。这个树的cp值是0.01(cp的默认值),该树包括九个测试和一个相对误差值(与根结点相比)0.354。 R应用10折交叉验证的内部过程,评估该树的平均相对误差为0.70241+0.11523 根据这些更稳健的性能估计信息,可以避免过度拟合问题。 可以看到,8号树的预测相对误差(0.67733)最小。
选择好的回归树的准则: 1、以估计的cp值为准则; 2、1-SE规则;这包括检查交叉验证的估计误差(xerror列)以及标准误差(xstd列)。 在这个案例中,1-SE规则树是最小的树,误差小于0.67733+0.10892=0.78625,而由1检验的2号树的估计误差为0.73358.
若想要选择不是R建议的树,可通过使用不同的cp值来建立这棵树: rm2=prune(rm,cp=0.08)
交互的对树进行修剪:snip.rpart() 两种方式: 1、指出需要修剪的那个地方的结点号(可以通过输出树对象来得到树的结点号),返回树对象
2、首先在图形窗口画出回归树,然后调用没有第二参数的函数。点击结点,即在这个结点对树进行修剪。可持续执行,直到右击结束。
|
请发表评论