CommencezCommencez gratuitement

Tracer des courbes d'apprentissage

Quand on veut tester de nombreuses valeurs pour un seul hyperparamètre, il peut être difficile de visualiser cela clairement dans un DataFrame. Vous avez déjà vu une astuce pratique pour analyser ce type de situation. Un graphique appelé « courbe d'apprentissage » permet de bien illustrer l'effet de l'augmentation ou de la diminution d'un hyperparamètre particulier sur le résultat final.

Plutôt que de tester seulement quelques valeurs pour le taux d'apprentissage, vous en testerez plusieurs afin de voir facilement l'effet de cet hyperparamètre sur une grande plage de valeurs. Une fonction utile de NumPy est np.linspace(start, end, num), qui permet de créer un certain nombre de valeurs (num) réparties uniformément dans un intervalle (start, end) que vous spécifiez.

Vous avez à votre disposition les jeux de données X_train, X_test, y_train et y_test.

Cette activité fait partie du cours

Ajustement des hyperparamètres en Python

Voir le cours

Instructions de l’exercice

  • Créez une liste de 30 taux d'apprentissage répartis uniformément entre 0.01 et 2.
  • Créez une boucle semblable à celle du dernier exercice, mais en enregistrant uniquement les scores de justesse dans une liste.
  • Tracez les taux d'apprentissage en fonction du score de justesse.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []

# Create the for loop
for learn_rate in learn_rates:
  	# Create the model, predictions & save the accuracies as before
    model = GradientBoostingClassifier(learning_rate=____)
    predictions = model.fit(____, ____).predict(____)
    accuracies.append(accuracy_score(y_test, ____))

# Plot results    
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____
Modifier et exécuter le code