Cross-validatie voor een simpel model van vluchtduur
Je hebt al een paar modellen gebouwd om de vluchtduur te voorspellen en die geëvalueerd met een eenvoudige train/test-split. Cross-validatie is echter een veel betere manier om de modelprestatie te beoordelen.
In deze oefening ga je een eenvoudig model voor de vluchtduur trainen met cross-validatie. Reistijd hangt meestal sterk samen met afstand, dus alleen de kolom km gebruiken zou al een redelijk model moeten opleveren.
De data zijn willekeurig opgesplitst in flights_train en flights_test.
De volgende klassen zijn al geïmporteerd: LinearRegression, RegressionEvaluator, ParamGridBuilder en CrossValidator.
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Maak een lege parametergrid.
- Maak objecten om een lineair regressiemodel te bouwen en te evalueren. Het model moet het veld "duration" voorspellen.
- Maak een cross-validatorobject. Vul waarden in voor de argumenten
estimator,estimatorParamMapsenevaluator. Kies 5-fold cross-validatie. - Train en test het model over meerdere folds van de trainingsdata.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create an empty parameter grid
params = ____().____()
# Create objects for building and evaluating a regression model
regression = ____(____)
evaluator = ____(____)
# Create a cross validator
cv = ____(estimator=____, estimatorParamMaps=____, evaluator=____, ____)
# Train and test model on multiple folds of the training data
cv = cv.____(____)
# NOTE: Since cross-valdiation builds multiple models, the fit() method can take a little while to complete.