R语言笔记之树模型(回归树和决策树)

回归树过程:

例:有10名学生,他们的身高分布如下:
R1:
女生(7):156,167,165,163,160,170,160
R2:
男生(3):172,180,176
那么,落入R1的样本均值为163,落入R2的样本均值为176,那么对于新样本,如果是女生,树模型预测的身高是163,是男生,则为176.
那么如何划分出区域R1,R2(建造树模型)?
需要使用自上到下的贪婪算法—–递归二元分割,即从根节点逐步向下分隔,每次产生两个树枝(二元分割)
R中可以建造回归树的包:ctree,rpart,tree

> library(rpart)
> library(tree)
Error in library(tree) : 不存在叫‘tree’这个名字的程辑包
> install.packages("tree")
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.4/tree_1.0-37.zip'
Content type 'application/zip' length 122090 bytes (119 KB)
downloaded 119 KB

package ‘tree’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\LLJiang\AppData\Local\Temp\RtmpmMgvpx\downloaded_packages
> library(tree)
Warning message:
程辑包‘tree’是用R版本3.4.3 来建造的 
> dat=read.csv("https://raw.githubusercontent.com/happyrabbit/DataScientistR/master/Data/SegData.csv")
> dat=subset(dat,store_exp>0&online_exp>0)
> trainx=dat[,grep("Q",names(dat))]
> trainy=dat$store_exp+dat$online_exp
> set.seed(100)
> rpartTrue=train(trainx,trainy,method="rpart2",tuneLength=10,trControl=trainControl(method="cv"))
> plot(rpartTrue)
> 

这里写图片描述
如上图,树的最大深度大于2,RMSE就不再变化了,这里我们就用深度2来建立树

> rpartTrue=rpart(trainy~.,data=trainx,maxdepth=2)
> print(rpartTrue)
n= 999 

node), split, n, deviance, yval
      * denotes terminal node

1) root 999 15812720000  3479.113  
  2) Q3< 3.5 799  2373688000  1818.720  
    4) Q5< 1.5 250     3534392   705.193 *
    5) Q5><
  • 6
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值