我可以使用rpart预测(如下所示),
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对象转换为一个简单的函数,该函数只包含数据输入上的拆分逻辑,然后输出预测值?
原因是我可以在单个脚本中使用该函数,而无需从外部源加载适合对象。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用dput()
将对象保存到文件中,然后使用dget()
进行阅读:
dput(fit, 'fit.dput')
rm(fit)
fit <- dget('fit.dput')
答案 1 :(得分:1)
您感兴趣的输出,即变量名称和分割树的值,由labels.rpart
函数汇编:
labels(fit)
#-----------
[1] "root" "Weight>=2568" "Weight>=3088" "Weight< 3088"
[5] "Weight>=2748" "Weight< 2748" "Weight< 2568"
&#39;分裂&#39;拟合对象的元素是存储切割点的位置(在&#34;索引&#34;列中):
> 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
您可以查看代码,但如果您还不知道该怎么做,那么这不是一个易于理解的功能:
> 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)