Optimisation des hyperparamètres en Python
Alex Scriven
Data Scientist
Dans l'évolution génétique réelle, le processus est le suivant :
On peut appliquer la même idée au réglage d'hyperparamètres :
C'est une recherche informée qui présente plusieurs avantages :
Une bibliothèque utile pour le réglage génétique des hyperparamètres est TPOT :
Considérez TPOT comme votre assistant Data Science. TPOT est un outil Python d'Automated Machine Learning qui optimise des pipelines de machine learning via la programmation génétique.
Les pipelines incluent non seulement le modèle (ou plusieurs modèles) mais aussi le travail sur les variables et d'autres étapes du processus. En plus, TPOT renvoie le code Python du pipeline !
Les principaux arguments d'un classifieur TPOT sont :
generations : nombre d'itérations d'entraînement.population_size : nombre de modèles conservés après chaque itération.offspring_size : nombre de modèles produits à chaque itération.mutation_rate : part de pipelines à randomiser.crossover_rate : part de pipelines à croiser à chaque itération.scoring : fonction qui détermine les meilleurs modèles.cv : stratégie de validation croisée.Un exemple simple :
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
Nous gardons les valeurs par défaut de mutation_rate et crossover_rate, à laisser telles quelles sans expertise approfondie en programmation génétique.
Remarquez : pas d'hyperparamètres spécifiques à un algorithme ?
Optimisation des hyperparamètres en Python