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
orgeorg_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=____)