如何在R中计算回归树的均方误差?(葡萄酒数据集场景)
葡萄酒质量回归树模型的MSE计算方案
问题场景
基于rpart包构建了两个回归树模型(arbol0仅以chlorides为特征,arbol1以chlorides+density为特征),需要计算均方误差(MSE)对比模型性能,此前手动计算过程出错。
优化预测值获取
无需手动构造newdata,直接传入原训练数据集即可获取预测值,代码更简洁且不易出错:
# 获取arbol0的预测值 pred_arbol0 <- predict(arbol0, vinos, type = "anova") # 获取arbol1的预测值 pred_arbol1 <- predict(arbol1, vinos, type = "anova")
手动计算MSE的正确代码
MSE为真实值与预测值差值的平方的平均值,直接通过向量运算完成计算:
# 计算arbol0的MSE mse_arbol0 <- mean((vinos$quality - pred_arbol0)^2) # 计算arbol1的MSE mse_arbol1 <- mean((vinos$quality - pred_arbol1)^2) # 打印结果 cat("arbol0的MSE:", round(mse_arbol0, 4), "\n") cat("arbol1的MSE:", round(mse_arbol1, 4), "\n")
便捷计算方法(可选)
使用caret包的postResample函数可一键输出MSE、RMSE等评估指标:
library(caret) # 评估arbol0 postResample(pred_arbol0, vinos$quality) # 评估arbol1 postResample(pred_arbol1, vinos$quality)
内容的提问来源于stack exchange,提问作者slow_learner
相关产品推荐
相关产品推荐

