Voorspellen op testset
Nu je de gegevens willekeurig hebt opgesplitst in een trainingsset en een testset, kun je de functie lm() gebruiken, net zoals in de eerste oefening, om een model te fitten op je trainingsset in plaats van op de volledige gegevensset. Onthoud dat je de formule-interface van de lineaire regressiefunctie kunt gebruiken om een model te fitten met een opgegeven doelvariabele en alle andere variabelen in de gegevensset als voorspellers:
mod <- lm(y ~ ., training_data)
Je kunt de functie predict() gebruiken om met dat model voorspellingen te maken voor nieuwe data. De nieuwe gegevensset moet alle kolommen bevatten die ook in de trainingsdata staan, maar ze mogen in een andere volgorde staan en andere waarden hebben. In plaats van opnieuw te voorspellen op de trainingsset, kun je hier voorspellen op de testset, die je niet hebt gebruikt om het model te trainen. Hiermee kun je in de volgende oefening de out-of-sample-fout voor het model bepalen:
p <- predict(model, new_data)
Deze oefening maakt deel uit van de cursus
Machine Learning met caret in R
Oefeninstructies
- Fit een
lm()-model genaamdmodelompricete voorspellen met alle andere variabelen als covariaten. Gebruik daarbij de trainingssettrain. - Voorspel op de testset
testmetpredict(). Sla deze waarden op in een vectorp.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Fit lm model on train: model
# Predict on test: p