Validação cruzada do pipeline do modelo de duração de voo
O modelo com validação cruzada que você acabou de criar era simples, usando apenas km para prever duration.
Outro indicador importante da duração do voo é o aeroporto de origem. Em geral, os voos demoram mais para entrar no ar em aeroportos movimentados. Vamos ver se a adição desse preditor melhora o modelo!
Neste exercício, você adicionará o campo org ao modelo. No entanto, como o org é categórico, há mais trabalho a ser feito antes que ele possa ser incluído: primeiro, ele deve ser transformado em um índice e, em seguida, codificado em um único ponto antes de ser montado com o km e usado para criar o modelo de regressão. Vamos encerrar essas operações em um pipeline.
Os seguintes objetos já foram criados:
params- uma grade de parâmetros vaziaevaluator- um avaliador de regressãoregression- um objetoLinearRegressioncomlabelCol='duration'.
As classes StringIndexer, OneHotEncoder, VectorAssembler e CrossValidator já foram importadas.
Este exercício faz parte do curso
Machine learning com PySpark
Instruções do exercício
- Crie um indexador de strings. Especifique os campos de entrada e saída como
orgeorg_idx. - Crie um codificador de um único disparo. Nomeie o campo de saída como
org_dummy. - Reúna os campos
kmeorg_dummyem um único campo chamadofeatures. - Crie um pipeline usando as seguintes operações: indexador de cadeia de caracteres, codificador de um ponto, montador e regressão linear. Use isso para criar um validador cruzado.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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=____)