Valutare un modello con train/test split
Ora testerai il modello mpg_model sui dati di test, mpg_test.
Per comodità sono state fornite le funzioni rmse() e r_squared() per calcolare RMSE e R-squared:
rmse(predcol, ycol)
r_squared(predcol, ycol)
dove:
- predcol: i valori predetti
- ycol: l'output effettivo
Tracerai anche un grafico delle predizioni rispetto all'output.
In generale, le prestazioni del modello sono migliori sui dati di training rispetto ai dati di test (anche se a volte il test set "ha fortuna"). Una piccola differenza nelle prestazioni va bene; se le prestazioni sul training sono significativamente migliori, c'è un problema.
I data frame mpg_train e mpg_test, e il modello mpg_model sono già stati caricati, insieme alle funzioni rmse() e r_squared().
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Predici l'efficienza nei consumi in città a partire da
hwysui datimpg_train. Assegna le predizioni alla colonnapred. - Predici l'efficienza nei consumi in città a partire da
hwysui datimpg_test. Assegna le predizioni alla colonnapred. - Usa
rmse()per valutare l'RMSE sia per il test set sia per il training set. Confronta. Le prestazioni sono simili? - Fai lo stesso con
r_squared(). Le prestazioni sono simili? - Usa
ggplot2per tracciare le predizioni controctysui dati ditest.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()