Automatiser le choix des hyperparamètres
Trouver le meilleur hyperparamètre sans écrire des centaines de lignes de code pour des centaines de modèles est un gain d’efficacité précieux qui vous aidera grandement à construire vos futurs modèles de Machine Learning.
Un hyperparamètre important pour l’algorithme GBM est le taux d’apprentissage (learning rate). Mais lequel convient le mieux à ce problème ? En écrivant une boucle pour tester plusieurs valeurs, en rassemblant les résultats et en les visualisant, vous pouvez identifier la meilleure.
Les taux d’apprentissage possibles à tester sont 0.001, 0.01, 0.05, 0.1, 0.2 et 0.5
Vous disposez des jeux de données X_train, X_test, y_train et y_test, et GradientBoostingClassifier a été importé pour vous.
Cet exercice fait partie du cours
Optimisation des hyperparamètres en Python
Instructions
- Créez une liste
learning_ratespour les taux d’apprentissage, et uneresults_listpour stocker l’accuracy de vos prédictions. - Écrivez une boucle pour créer un modèle GBM pour chaque taux d’apprentissage mentionné et générez des prédictions pour chaque modèle.
- Enregistrez le taux d’apprentissage et la métrique d’accuracy dans
results_list. - Convertissez la liste de résultats en DataFrame et affichez-la.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Set the learning rates & results storage
learning_rates = ____
results_list = ____
# Create the for loop to evaluate model predictions for each learning rate
for learning_rate in ____:
model = ____(learning_rate=____)
predictions = ____.fit(____, ____).predict(____)
# Save the learning rate and accuracy score
results_list.append([____, accuracy_score(y_test, ____)])
# Gather everything into a DataFrame
results_df = pd.DataFrame(____, columns=['learning_rate', 'accuracy'])
print(results_df)