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. Entretanto, 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 com um único ponto antes de ser montado com 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 objetoLinearRegression
comlabelCol='duration'
.
As classes StringIndexer
, OneHotEncoder
, VectorAssembler
e CrossValidator
já foram importadas.
Este exercício faz parte do curso
Aprendizado de máquina com PySpark
Instruções de exercício
- Crie um indexador de strings. Especifique os campos de entrada e saída como
org
eorg_idx
. - Crie um codificador de um único disparo. Nomeie o campo de saída como
org_dummy
. - Reúna os campos
km
eorg_dummy
em 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 preenchendo 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=____)