CommencerCommencer gratuitement

Construire des courbes d’apprentissage

Lorsqu’on veut tester de nombreuses valeurs pour un seul hyperparamètre, il peut être difficile de visualiser cela facilement sous forme de DataFrame. Vous avez précédemment appris une astuce pratique pour analyser ce cas. Un graphique appelé « courbe d’apprentissage » montre clairement l’effet de l’augmentation ou de la diminution d’un hyperparamètre particulier sur le résultat final.

Au lieu de tester seulement quelques valeurs pour le taux d’apprentissage, vous en testerez un grand nombre afin de voir facilement l’effet de cet hyperparamètre sur une large 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égulièrement espacées dans un intervalle (start, end) que vous spécifiez.

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

Cet exercice fait partie du cours

Optimisation des hyperparamètres en Python

Afficher le cours

Instructions

  • Créez une liste de 30 taux d’apprentissage régulièrement espacés entre 0,01 et 2.
  • Reproduisez une boucle similaire à celle du dernier exercice, mais en enregistrant uniquement les scores de précision dans une liste.
  • Tracez les taux d’apprentissage en fonction du score de précision.

Exercice interactif pratique

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

# 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