Evalueer een model met een train/test-split
Nu ga je het model mpg_model testen op de testdata, mpg_test.
De functies rmse() en r_squared() om RMSE en R-squared te berekenen zijn voor het gemak beschikbaar gesteld:
rmse(predcol, ycol)
r_squared(predcol, ycol)
waarbij:
- predcol: de voorspelde waarden
- ycol: de daadwerkelijke uitkomst
Je maakt ook een plot van de voorspellingen versus de uitkomst.
Over het algemeen presteren modellen beter op de trainingsdata dan op de testdata (al kan de testset soms "geluk" hebben). Een klein verschil in performance is prima; als de performance op training veel beter is, is er een probleem.
De dataframes mpg_train en mpg_test, en het model mpg_model zijn al vooraf geladen, net als de functies rmse() en r_squared().
Deze oefening maakt deel uit van de cursus
Supervised Learning in R: Regressie
Oefeninstructies
- Voorspel de stadsbrandstofefficiëntie uit
hwyop de datampg_train. Sla de voorspellingen op in de kolompred. - Voorspel de stadsbrandstofefficiëntie uit
hwyop de datampg_test. Sla de voorspellingen op in de kolompred. - Gebruik
rmse()om de RMSE voor zowel de test- als trainingset te evalueren. Vergelijk. Lijken de prestaties op elkaar? - Doe hetzelfde met
r_squared(). Lijken de prestaties op elkaar? - Gebruik
ggplot2om de voorspellingen uit te zetten tegenctyop detest-data.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()