CommencerCommencer gratuitement

Modèle de durée de vol : Régularisation !

Dans l'exercice précédent, vous avez ajouté des prédicteurs supplémentaires au modèle de durée de vol. Le modèle a obtenu de bons résultats lors des tests, mais le nombre élevé de coefficients rendait son interprétation difficile.

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. La plupart des coefficients du modèle obtenu seront définis sur zéro. Cela signifie que seul un sous-ensemble des prédicteurs contribue réellement au modèle. Malgré la simplicité du modèle, il produit tout de même un bon RMSE sur les données de test.

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 à l'adresse flights, réparties de manière aléatoire entre flights_train et flights_test.

Ce modèle comporte deux paramètres, λ (regParam) et α (elasticNetParam), où α détermine le type de régularisation et λ donne la force de la régularisation.

Cet exercice fait partie du cours

Apprentissage automatique avec PySpark

Afficher le cours

Instructions

  • Ajustez un modèle de régression linéaire aux données d'apprentissage. Veuillez définir la force de régularisation sur 1.
  • Calculez l'erreur quadratique moyenne (RMSE) sur les données de test.
  • Veuillez examiner 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)
Modifier et exécuter le code