Modelo de duração do voo: Regularização!
No exercício anterior, você adicionou mais preditores ao modelo de duração do voo. O modelo funcionou bem nos dados de teste, mas com tantos coeficientes ficou difícil de entender.
Neste exercício, você vai usar a regressão Lasso (regularizada com uma penalidade L1) para criar um modelo mais simples. Muitos dos coeficientes no modelo final vão ficar em zero. Isso quer dizer que só uma parte dos preditores realmente ajuda no modelo. Mesmo com um modelo mais simples, ele ainda dá um bom RMSE nos dados de teste.
Você vai usar um valor específico para a força de regularização. Mais tarde, você vai aprender como encontrar o melhor valor usando a validação cruzada.
Os dados (os mesmos do exercício anterior) estão disponíveis em flights
, divididos aleatoriamente em flights_train
e flights_test
.
Existem dois parâmetros para este modelo, λ (regParam
) e α (elasticNetParam
), onde α determina o tipo de regularização e λ dá a força da regularização.
Este exercício faz parte do curso
Machine Learning com PySpark
Instruções do exercício
- Ajuste um modelo de regressão linear aos dados de treinamento. Defina a força de regularização como 1.
- Calcule o RMSE nos dados de teste.
- Olha os coeficientes do modelo.
- Quantos dos coeficientes são iguais a zero?
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
from pyspark.ml.regression import LinearRegression
from pyspark.ml.evaluation import RegressionEvaluator
# Fit Lasso model (λ = 1, α = 1) to training data
regression = ____(____, ____, elasticNetParam=1).____(____)
# Calculate the RMSE on testing data
rmse = ____(____).____(____)
print("The test RMSE is", rmse)
# Look at the model coefficients
coeffs = regression.____
print(coeffs)
# Number of zero coefficients
zero_coeff = sum([____ == ____ for beta in regression.coefficients])
print("Number of coefficients equal to 0:", zero_coeff)