test/train 분할로 모델 평가하기
이제 테스트 데이터 mpg_test에서 모델 mpg_model을 평가해 보겠습니다.
RMSE와 R-squared를 계산하기 위한 함수 rmse()와 r_squared()가 편의를 위해 제공되어 있습니다:
rmse(predcol, ycol)
r_squared(predcol, ycol)
설명:
- predcol: 예측값
- ycol: 실제 결과
또한 예측값과 실제값의 산점도를 그려 보겠습니다.
일반적으로 모델 성능은 테스트 데이터보다 학습 데이터에서 더 좋습니다(가끔은 테스트 세트가 "운이 좋을" 때도 있습니다). 성능 차이가 약간 나는 것은 괜찮지만, 학습 데이터에서 성능이 현저히 더 좋다면 문제가 있는 것입니다.
mpg_train과 mpg_test 데이터 프레임, mpg_model 모델, 그리고 함수 rmse()와 r_squared()는 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
R로 하는 Supervised Learning: 회귀
연습 안내
mpg_train데이터에서hwy로 도시 연비를 예측하세요. 예측값은pred열에 저장하세요.mpg_test데이터에서hwy로 도시 연비를 예측하세요. 예측값은pred열에 저장하세요.rmse()를 사용해 테스트 세트와 학습 세트의 RMSE를 각각 계산하세요. 비교해 보세요. 성능이 비슷한가요?- 같은 방식으로
r_squared()도 계산하세요. 성능이 비슷한가요? ggplot2를 사용해 테스트 데이터에서 예측값을cty에 대해 산점도로 그려 보세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Examine the objects that have been loaded
ls.str()
# predict cty from hwy for the training set
mpg_train$pred <- ___
# predict cty from hwy for the test set
mpg_test$pred <- ___
# Evaluate the rmse on both training and test data and print them
(rmse_train <- ___)
(rmse_test <- ___)
# Evaluate the r-squared on both training and test data.and print them
(rsq_train <- ___)
(rsq_test <- ___)
# Plot the predictions (on the x-axis) against the outcome (cty) on the test data
ggplot(___, aes(x = ___, y = ___)) +
geom_point() +
geom_abline()