Cross-validatie van een pipeline voor het model van vluchttijd
Het cross- gevalideerde model dat je zojuist hebt gebouwd was eenvoudig: het gebruikte alleen km om duration te voorspellen.
Een andere belangrijke voorspeller van vluchttijd is de vertrekluchthaven. Het duurt over het algemeen langer om op te stijgen vanaf drukke luchthavens. Kijken we of het toevoegen van deze voorspeller het model verbetert!
In deze oefening voeg je het veld org toe aan het model. Omdat org categorisch is, moet er wel wat gebeuren voordat je het kunt meenemen: het moet eerst worden omgezet naar een index en daarna one-hot worden gecodeerd, voordat het samen met km wordt geassembleerd en gebruikt om het regressiemodel te bouwen. We vatten deze stappen samen in een pipeline.
De volgende objecten zijn al aangemaakt:
params— een leeg parameterroosterevaluator— een regressie-evaluatorregression— eenLinearRegression-object metlabelCol='duration'.
De klassen StringIndexer, OneHotEncoder, VectorAssembler en CrossValidator zijn al geïmporteerd.
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Maak een string-indexer. Stel de invoer- en uitvoervelden in op
orgenorg_idx. - Maak een one-hot encoder. Noem het uitvoerveld
org_dummy. - Assembleer de velden
kmenorg_dummytot één veld met de naamfeatures. - Maak een pipeline met de volgende stappen: string-indexer, one-hot encoder, assembler en lineaire regressie. Gebruik deze om een cross-validator te maken.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create an indexer for the org field
indexer = ____(____, ____)
# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)
# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)
# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
estimatorParamMaps=____,
evaluator=____)