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
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.____