CommencerCommencer gratuitement

Régression logistique régularisée

Au chapitre 1, vous avez utilisé la régression logistique sur le jeu de données des chiffres manuscrits. Ici, nous allons explorer l’effet de la régularisation L2.

Le jeu de données des chiffres manuscrits est déjà chargé, séparé et stocké dans les variables X_train, y_train, X_valid et y_valid. Les variables train_errs et valid_errs sont déjà initialisées comme listes vides.

Cet exercice fait partie du cours

Classifieurs linéaires en Python

Afficher le cours

Instructions

  • Parcourez les différentes valeurs de C_value, en créant puis ajustant un modèle LogisticRegression à chaque itération.
  • Enregistrez l’erreur sur l’ensemble d’entraînement et sur l’ensemble de validation pour chaque modèle.
  • Créez un graphique des erreurs d’entraînement et de test en fonction du paramètre de régularisation C.
  • En regardant le graphique, quelle est la meilleure valeur de C ?

Exercice interactif pratique

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

# Train and validaton errors initialized as empty list
train_errs = list()
valid_errs = list()

# Loop over values of C_value
for C_value in [0.001, 0.01, 0.1, 1, 10, 100, 1000]:
    # Create LogisticRegression object and fit
    lr = ____
    lr.fit(____)
    
    # Evaluate error rates and append to lists
    train_errs.append( 1.0 - lr.score(____) )
    valid_errs.append( 1.0 - lr.score(____) )
    
# Plot results
plt.semilogx(C_values, train_errs, C_values, valid_errs)
plt.legend(("train", "validation"))
plt.show()
Modifier et exécuter le code