Validação cruzada do pipeline do modelo de duração de voos
O modelo validado cruzado que você acabou de construir era simples, usando só um km
e para prever duration
.
Outro fator importante pra saber quanto tempo vai durar o voo é o aeroporto de onde você vai sair. Os voos geralmente demoram mais pra decolar de aeroportos movimentados. Vamos ver se adicionar esse preditor melhora o modelo!
Neste exercício, você vai adicionar o campo “ org
” ao modelo. Mas, como org
é categórico, ainda tem mais trabalho a fazer antes de poder ser incluído: primeiro precisa ser transformado em um índice e depois codificado como one-hot antes de ser montado com km
e usado para construir o modelo de regressão. Vamos juntar 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 objeto "LinearRegression
" com "labelCol='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 string. Especifique os campos de entrada e saída como
org
eorg_idx
. - Crie um codificador one-hot. Dê o nome “
org_dummy
” ao campo de saída. - Junta os campos “
km
” e “org_dummy
” num único campo chamado “features
”. - Crie um pipeline usando as seguintes operações: indexador de string, codificador one-hot, montador e regressão linear. Use isso pra 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=____)