CommencerCommencer gratuitement

Identifier le coefficient de pénalisation L1 optimal

Vous allez maintenant ajuster le paramètre C pour la régularisation L1 afin de trouver celui qui réduit la complexité du modèle tout en conservant de bonnes métriques de performance. Vous exécuterez une boucle for sur les valeurs possibles de C, créerez une régression logistique pour chacune et calculerez les métriques de performance.

Une liste C a été créée avec les valeurs possibles. Le tableau l1_metrics a été construit avec 3 colonnes : la première contient les valeurs de C, et les deux suivantes servent d’emplacements pour le nombre de coefficients non nuls et le rappel du modèle. Les variables mises à l’échelle ont été chargées comme train_X, train_Y pour l’entraînement, et test_X, test_Y pour le test.

numpy et pandas sont chargés sous les alias np et pd, ainsi que la fonction recall_score de sklearn.

Cet exercice fait partie du cours

Machine Learning pour le marketing en Python

Afficher le cours

Instructions

  • Exécutez une boucle for sur l’intervalle allant de 0 à la longueur de la liste C.
  • Pour chaque valeur candidate de C, initialisez et entraînez une régression logistique, puis prédisez le churn sur les données de test.
  • Pour chaque valeur candidate de C, enregistrez le nombre de coefficients non nuls et le rappel dans les deuxième et troisième colonnes de l1_metrics.
  • Créez un DataFrame pandas à partir de l1_metrics avec les noms de colonnes appropriés.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Run a for loop over the range of C list length
for index in ___(0, len(C)):
  # Initialize and fit Logistic Regression with the C candidate
  logreg = ___(penalty='l1', C=C[___], solver='liblinear')
  logreg.fit(___, train_Y)
  # Predict churn on the testing data
  pred_test_Y = logreg.___(test_X)
  # Create non-zero count and recall score columns
  l1_metrics[index,1] = np.___(logreg.coef_)
  l1_metrics[index,2] = recall_score(___, pred_test_Y)

# Name the columns and print the array as pandas DataFrame
col_names = ['C','Non-Zero Coeffs','Recall']
print(pd.DataFrame(l1_metrics, columns=___))
Modifier et exécuter le code