RMSE와 루트 평균제곱 상대 오차 비교
이번 연습 문제에서는 금액형 출력값을 모델링하기 전에 로그 변환하면, 금액을 직접 모델링하는 것과 비교해 평균 상대 오차는 개선되지만 RMSE는 증가함을 보여 드립니다. 직전 연습 문제의 model.log 결과를, 소득을 직접 적합한 모델(model.abs)과 비교해 보세요.
income_train과 income_test 데이터셋이 미리 로드되어 있으며, 모델 model.log도 준비되어 있어요.
또한 다음도 제공됩니다:
model.abs: 다음 공식을 사용해 입력에 소득을 직접 적합한 모델Income2005 ~ Arith + Word + Parag + Math + AFQT
이 연습은 강의의 일부입니다
R로 하는 Supervised Learning: 회귀
연습 안내
- 빈칸을 채워 두 모델의 예측값을
income_test에 추가하세요.- 로그 변환을 되돌리려면
model.log의 예측값에는 지수(exponent)를 취하는 것을 잊지 마세요!
- 로그 변환을 되돌리려면
- 빈칸을 채워 예측값을
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