0Pricing
Learn AI with Python · Leçon

Recherche sur grille et recherche aléatoire

GridSearchCV, RandomizedSearchCV, conception de param_grid et nouvel ajustement avec les meilleurs paramètres.

Recherche sur grille et recherche aléatoire est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Pourquoi régler les hyperparamètres

Les modèles possèdent des hyperparamètres (comme max_depth ou C) qui ne sont pas appris à partir des données, mais définis avant l’entraînement. Les bonnes valeurs peuvent améliorer considérablement les performances ; nous les recherchons donc de manière systématique.

Le réglage manuel est sujet aux erreurs

Essayer des valeurs à la main est lent et facile à fausser. Une recherche automatisée associée à une validation croisée évalue chaque candidat équitablement et trouve la meilleure combinaison de manière reproductible.

Notions de base de GridSearchCV

GridSearchCV essaie toutes les combinaisons d’une grille de paramètres et évalue chacune au moyen d’une validation croisée. Cette méthode est exhaustive et garantit le meilleur point de la grille.

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

param_grid = {
    "n_estimators": [100, 200, 300],
    "max_depth": [4, 8, None],
}
gs = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
gs.fit(X, y)

L’explosion combinatoire

Le coût d’une recherche sur grille augmente avec le produit du nombre d’options de chaque paramètre, multiplié par le nombre de plis. Trois paramètres comportant chacun 5 valeurs, avec une validation croisée à 5 plis, donnent 5*5*5*5 = 625 ajustements. Les grilles deviennent rapidement coûteuses.

Évaluation dans GridSearchCV

Le paramètre scoring choisit la mesure à optimiser. Pour des données déséquilibrées, choisissez f1 ou roc_auc plutôt que l’exactitude par défaut.

from sklearn.model_selection import GridSearchCV

gs = GridSearchCV(
    RandomForestClassifier(),
    param_grid,
    cv=5,
    scoring="roc_auc",
)
gs.fit(X, y)

Paralléliser avec n_jobs

L’ajustement de chaque candidat est indépendant ; définissez donc n_jobs=-1 pour les exécuter sur tous les cœurs du CPU. Cela réduit considérablement le temps réel écoulé pour les grandes grilles.

from sklearn.model_selection import GridSearchCV

gs = GridSearchCV(
    RandomForestClassifier(),
    param_grid,
    cv=5,
    n_jobs=-1,
    verbose=1,
)

Lire les meilleurs résultats

Après l’ajustement, consultez best_params_ pour connaître la combinaison gagnante, best_score_ pour son résultat de validation croisée et best_estimator_ pour le modèle réajusté, prêt à effectuer des prédictions.

gs.fit(X, y)
print("Best params:", gs.best_params_)
print("Best CV score:", gs.best_score_)
best_model = gs.best_estimator_
best_model.predict(X_new)

Examiner tous les résultats

cv_results_ est un dictionnaire (idéal sous forme de DataFrame) qui présente le résultat et le rang de chaque candidat. Utilisez-le pour comprendre quels paramètres sont importants et à quel point les résultats sont stables.

import pandas as pd

results = pd.DataFrame(gs.cv_results_)
print(results[["params", "mean_test_score", "rank_test_score"]].head())

RandomizedSearchCV

Lorsque l’espace de recherche est immense, RandomizedSearchCV échantillonne un nombre défini de combinaisons aléatoires au lieu de toutes les essayer. Vous contrôlez le budget avec n_iter.

from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint

param_dist = {
    "n_estimators": randint(100, 500),
    "max_depth": randint(3, 20),
}
rs = RandomizedSearchCV(
    RandomForestClassifier(), param_dist,
    n_iter=30, cv=5, random_state=0,
)
rs.fit(X, y)

Pourquoi la recherche aléatoire l’emporte souvent

Dans de nombreux problèmes, seuls quelques hyperparamètres sont réellement importants. La recherche aléatoire explore ces dimensions essentielles plus efficacement qu’une grille rigide et trouve de bonnes solutions avec bien moins d’essais.

Grille ou recherche aléatoire : conseils

Utilisez GridSearchCV pour un petit ensemble discret de candidats. Utilisez RandomizedSearchCV pour les espaces vastes ou continus, lorsque vous définissez un budget n_iter. Les deux réajustent automatiquement le meilleur modèle lorsque refit=True.

Vérification rapide

Vérifiez vos connaissances sur la recherche d’hyperparamètres.

Récapitulatif

Récapitulatif : GridSearchCV teste exhaustivement toutes les combinaisons d’un param_grid ; le coût explose avec la taille de la grille. RandomizedSearchCV échantillonne n_iter combinaisons pour les grands espaces. Définissez scoring pour choisir votre mesure, n_jobs=-1 pour accélérer les calculs, puis consultez best_params_, best_score_ et best_estimator_ après l’ajustement.

Questions Fréquemment Posées

La leçon « Recherche sur grille et recherche aléatoire » est-elle gratuite ?

Oui — le texte complet de « Recherche sur grille et recherche aléatoire » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Recherche sur grille et recherche aléatoire » ?

GridSearchCV, RandomizedSearchCV, conception de param_grid et nouvel ajustement avec les meilleurs paramètres. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Recherche sur grille et recherche aléatoire » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Stratégies de validation croisée
  2. Analyse approfondie des métriques de classification
  3. Recherche sur grille et recherche aléatoire
  4. Optimisation bayésienne avec Optuna
← Retour à Learn AI with Python