比较 RMSE 与均方根相对误差
在本练习中,您将展示:在建模前对货币型输出做对数变换,与直接建模原始货币值相比,会降低平均相对误差(但会提高 RMSE)。您将把上一个练习得到的 model.log 与一个直接拟合收入的模型(model.abs)进行比较。
数据集 income_train 和 income_test 已经预加载,同时还有您的模型 model.log。
另外可用:
model.abs:一个使用下列公式将收入直接拟合到输入上的模型Income2005 ~ Arith + Word + Parag + Math + AFQT
本练习是课程的一部分
R 中的监督学习:回归
练习说明
- 填空,将两个模型的预测添加到
income_test。- 别忘了对
model.log的预测取指数,以撤销对数变换!
- 别忘了对
- 填空,使用
pivot_longer()展开预测,并计算残差与相对误差。 - 填空,计算预测的 RMSE 和相对 RMSE。
- 哪个模型的绝对误差更大?哪个模型的相对误差更大?
交互式实操练习
通过完成这段示例代码来试试这个练习。
# fmla.abs is available
fmla.abs
# model.abs is available
summary(model.abs)
# Add predictions to the test set
income_test <- income_test %>%
mutate(pred.absmodel = ___(___, income_test), # predictions from model.abs
pred.logmodel = ___(___(___, income_test))) # predictions from model.log
# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>%
pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
mutate(residual = ___, # residuals
relerr = ___) # relative error
# Calculate RMSE and relative RMSE and compare
income_long %>%
group_by(modeltype) %>% # group by modeltype
summarize(rmse = ___, # RMSE
rmse.rel = ___) # Root mean squared relative error