我可以使用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对象。
谢谢你的帮助。
发布于 2016-05-04 04:42:45
您可以使用dput()将对象保存在文件中,然后使用dget()读取它
dput(fit, 'fit.dput')
rm(fit)
fit <- dget('fit.dput')发布于 2016-05-04 06:00:18
您感兴趣的输出,即树拆分时的变量名和值,由labels.rpart函数组装:
labels(fit)
#-----------
[1] "root" "Weight>=2568" "Weight>=3088" "Weight< 3088"
[5] "Weight>=2748" "Weight< 2748" "Weight< 2568"fit对象的'splits‘元素是切割点的存储位置(在"index“列中):
> 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)https://stackoverflow.com/questions/37013788
复制相似问题