Korsvalidering av pipeline för modell för flygduration
Den korsvaliderade modell du just byggde var enkel – den använde enbart km för att förutsäga duration.
En annan viktig prediktor för flygduration är avgångsflygplatsen. Flyg tar generellt längre tid att lyfta från trafikintensiva flygplatser. Låt oss se om modellen förbättras när vi lägger till den här prediktorn!
I den här övningen lägger du till fältet org i modellen. Eftersom org är kategoriskt krävs dock lite mer arbete innan det kan inkluderas: det måste först omvandlas till ett index och sedan one-hot-kodas innan det sätts ihop med km och används för att bygga regressionsmodellen. Vi samlar ihop dessa operationer i en pipeline.
Följande objekt har redan skapats:
params– ett tomt parameternätevaluator– en regressionsutvärderareregression– ettLinearRegression-objekt medlabelCol='duration'.
Klasserna StringIndexer, OneHotEncoder, VectorAssembler och CrossValidator har redan importerats.
Den här övningen är en del av kursen
Maskininlärning med PySpark
Övningsinstruktioner
- Skapa en strängindexerare. Ange in- och utdatafälten som
orgrespektiveorg_idx. - Skapa en one-hot-kodare. Namnge utdatafältet
org_dummy. - Sätt ihop fälten
kmochorg_dummytill ett enda fält kallatfeatures. - Skapa en pipeline med följande steg: strängindexerare, one-hot-kodare, assembler och linjär regression. Använd den för att skapa en korsvaliderare.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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=____)