我正在使用wine quality database。
我研究回归树取决于不同的变量为:
library(rpart)
library(rpart.plot)
library(rattle)
library(naniar)
library(dplyr)
library(ggplot2)
vinos <- read.csv(file = 'Wine.csv', header = T)
arbol0<-rpart(formula=quality~chlorides, data=vinos, method="anova")
fancyRpartPlot(arbol0)
arbol1<-rpart(formula=quality~chlorides+density, data=vinos, method="anova")
fancyRpartPlot(arbol1)
我想计算均方误差,看看arbol1是否优于arbol0。由于没有更多数据可用,我将使用自己的数据集。我尝试按
aaa<-predict(object=arbol0, newdata=data.frame(chlorides=vinos$chlorides), type="anova")
bbb<-predict(object=arbol1, newdata=data.frame(chlorides=vinos$chlorides, density=vinos$density), type="anova")
然后手动从aaa
和bbb
中减去 Dataframe 的最后一列。但是,我得到了一个错误。有人能帮助我吗?
1条答案
按热度按时间y4ekin9u1#
这个website可能对你有用。在训练你的模型之前,把你的数据集分成训练和测试子集是非常重要的。在下面的代码中,我用
base
函数完成了这一步。但caTools包中还有一个名为sample.split
的函数,它执行相同的过程。我附上了这个website,您可以在其中看到在R中拆分数据的所有方法。请记住,均方误差(MSE)的函数如下所示:
因此,将其应用于R非常简单。您只需计算观测值(即来自测试子集的响应变量)和预测值(即使用
predict
函数从模型预测的值)之间的平方差的均值。葡萄酒数据集的一个解决方案可以是这个,它基于以前的网站。