首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R: rpart :将rpart拟合对象转换为函数

R: rpart :将rpart拟合对象转换为函数
EN

Stack Overflow用户
提问于 2016-05-04 04:29:28
回答 2查看 175关注 0票数 1

我可以使用rpart来预测(如下所示),

代码语言:javascript
复制
library(rpart)

datpred <-tail(car.test.frame,10)
fit <- rpart(Mileage ~ Weight+Price, car.test.frame)
predict(fit,newdata=datpred)
plot(fit, uniform=TRUE)
text(fit, use.n=TRUE, all=TRUE, cex=.8)
objects(fit)

有没有一种简单的方法可以将拟合对象转换为一个简单的函数,该函数只包含数据输入上的拆分逻辑,然后输出预测?

这样做的原因是,我可以在单个脚本中使用该函数,而不需要从外部源加载fit对象。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-05-04 04:42:45

您可以使用dput()将对象保存在文件中,然后使用dget()读取它

代码语言:javascript
复制
dput(fit, 'fit.dput')
rm(fit)
fit <- dget('fit.dput')
票数 2
EN

Stack Overflow用户

发布于 2016-05-04 06:00:18

您感兴趣的输出,即树拆分时的变量名和值,由labels.rpart函数组装:

代码语言:javascript
复制
labels(fit)
#-----------
[1] "root"         "Weight>=2568" "Weight>=3088" "Weight< 3088"
[5] "Weight>=2748" "Weight< 2748" "Weight< 2568"

fit对象的'splits‘元素是切割点的存储位置(在"index“列中):

代码语言:javascript
复制
> fit$splits
       count ncat   improve  index adj
Weight    60    1 0.5953491 2567.5   0
Weight    45    1 0.5045118 3087.5   0
Weight    23    1 0.1476996 2747.5   0

你可以看看代码,但是如果你还不知道怎么做,那么这个函数就不容易理解了:

代码语言:javascript
复制
> methods(labels)
[1] labels.default     labels.dendrogram* labels.dist*      
[4] labels.lm*         labels.rpart*      labels.survreg    
[7] labels.terms*     
see '?methods' for accessing help and source code
> getAnywhere(labels.rpart)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37013788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档