Retour au Blog
Machine Learning 22 janvier 2025 6 min de lecture

Optuna en production : optimisation intelligente des hyperparamètres

Comment utiliser Optuna au-delà de la recherche aléatoire — élagage, optimisation multi-objectif, bases de données d'études persistantes.

Pourquoi Optuna plutôt que GridSearch

  • L'optimisation bayésienne apprend des essais passés
  • L'élagage (pruning) arrête tôt les essais peu prometteurs (économise 60-80 % de calcul)
  • Le stockage persistant reprend les études entre les sessions

Exemple minimal

import optuna

def objective(trial):
    params = {
        'n_estimators': trial.suggest_int('n_estimators', 100, 2000),
        'learning_rate': trial.suggest_float('lr', 0.001, 0.3, log=True),
        'max_depth': trial.suggest_int('max_depth', 3, 10),
    }
    model = LGBMClassifier(**params)
    return cross_val_score(model, X, y, cv=5, scoring='roc_auc').mean()

study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)

Élagage avec callbacks

from optuna.integration import LightGBMPruningCallback
callback = LightGBMPruningCallback(trial, 'auc')
model.fit(X_train, y_train, callbacks=[callback])
OptunaHyperparameter TuningBayesian OptimizationLightGBM
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc