Modèle de durée de vol : Régularisation !
Dans l'exercice précédent, vous avez ajouté d'autres variables prédictives au modèle de durée de vol. Le modèle a donné de bons résultats sur les données d'essai, mais il était difficile à interpréter en raison du grand nombre de coefficients.
Dans cet exercice, vous utiliserez la régression Lasso (régularisée avec une pénalité L1) pour créer un modèle plus parcimonieux. De nombreux coefficients du modèle résultant seront mis à zéro. Cela signifie que seul un sous-ensemble de prédicteurs contribue réellement au modèle. Bien que le modèle soit plus simple, il produit toujours un bon RMSE sur les données d'essai.
Vous utiliserez une valeur spécifique pour la force de régularisation. Plus tard, vous apprendrez comment trouver la meilleure valeur à l'aide de la validation croisée.
Les données (identiques à celles de l'exercice précédent) sont disponibles sous la forme flights, réparties aléatoirement en flights_train et flights_test.
Ce modèle comporte deux paramètres, λ (regParam) et α (elasticNetParam), où α détermine le type de régularisation et λ l'intensité de la régularisation.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Ajustez un modèle de régression linéaire aux données d'apprentissage. Réglez la force de régularisation sur 1.
- Calculez le RMSE sur les données de test.
- Regardez les coefficients du modèle.
- Combien de coefficients sont égaux à zéro ?
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)