0Pricing
Learn AI with Python · Lektion

Grid Search und Random Search

GridSearchCV, RandomizedSearchCV, param_grid entwerfen und mit den besten Parametern neu fitten.

Grid Search und Random Search ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Warum Hyperparameter abstimmen

Modelle verfügen über Hyperparameter (etwa max_depth oder C), die nicht aus Daten gelernt, sondern vor dem Training festgelegt werden. Die richtigen Werte können die Leistung erheblich verbessern, deshalb suchen wir systematisch nach ihnen.

Manuelles Abstimmen ist fehleranfällig

Werte von Hand auszuprobieren, ist langsam und führt leicht zu Verzerrungen. Eine automatisierte Suche in Kombination mit Kreuzvalidierung bewertet jeden Kandidaten fair und findet reproduzierbar die beste Kombination.

Grundlagen von GridSearchCV

GridSearchCV probiert jede Kombination in einem Parameter-Raster aus und bewertet jede davon mit Kreuzvalidierung. Das Verfahren ist erschöpfend und garantiert den besten Punkt im Raster.

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)

Die kombinatorische Explosion

Die Kosten der Rastersuche wachsen mit dem Produkt aller Anzahl von Optionen multipliziert mit der Anzahl der Folds. Drei Parameter mit jeweils 5 Werten bei einer 5-fachen Kreuzvalidierung ergeben 5*5*5*5 = 625 Trainingsläufe. Raster werden sehr schnell teuer.

Bewertung in GridSearchCV

Der Parameter scoring legt die zu optimierende Metrik fest. Wählen Sie bei unausgeglichenen Daten f1 oder roc_auc statt der standardmäßigen Genauigkeit.

from sklearn.model_selection import GridSearchCV

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

Parallelisierung mit n_jobs

Jeder Trainingslauf eines Kandidaten ist unabhängig. Setzen Sie daher n_jobs=-1, um die Läufe auf allen CPU-Kernen auszuführen. Dadurch verkürzt sich die tatsächliche Laufzeit großer Raster erheblich.

from sklearn.model_selection import GridSearchCV

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

Die besten Ergebnisse auslesen

Untersuchen Sie nach dem Training best_params_ für die beste Kombination, best_score_ für deren Kreuzvalidierungs-Score und best_estimator_ für das neu trainierte Modell, das zum Vorhersagen bereitsteht.

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)

Alle Ergebnisse untersuchen

cv_results_ ist ein Dictionary, das sich hervorragend als DataFrame eignet, und zeigt den Score sowie den Rang jedes Kandidaten. Verwenden Sie es, um zu verstehen, welche Parameter wichtig sind und wie stabil die Scores sind.

import pandas as pd

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

RandomizedSearchCV

Wenn der Suchraum sehr groß ist, zieht RandomizedSearchCV eine festgelegte Anzahl zufälliger Kombinationen, statt alle Kombinationen auszuprobieren. Mit n_iter legen Sie das Budget fest.

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)

Warum die Zufallssuche oft überlegen ist

Bei vielen Problemen sind nur wenige Hyperparameter wirklich wichtig. Die Zufallssuche untersucht diese wichtigen Dimensionen effizienter als ein starres Raster und findet mit deutlich weniger Versuchen gute Lösungen.

Raster oder Zufall: Entscheidungshilfe

Verwenden Sie GridSearchCV für eine kleine, diskrete Menge von Kandidaten. Verwenden Sie RandomizedSearchCV für große oder kontinuierliche Suchräume, bei denen Sie ein Budget über n_iter festlegen. Beide trainieren das beste Modell automatisch neu, wenn refit=True gesetzt ist.

Kurzer Test

Testen Sie Ihr Wissen über die Hyperparametersuche.

Zusammenfassung

Zusammenfassung: GridSearchCV testet erschöpfend jede Kombination in einem param_grid; mit zunehmender Größe explodieren die Kosten. RandomizedSearchCV zieht bei großen Suchräumen n_iter Kombinationen. Setzen Sie scoring für Ihre Metrik und n_jobs=-1 für mehr Geschwindigkeit. Lesen Sie nach dem Training best_params_, best_score_ und best_estimator_ aus.

Häufig gestellte Fragen

Ist die Lektion „Grid Search und Random Search“ kostenlos?

Ja — der vollständige Text von „Grid Search und Random Search“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grid Search und Random Search“?

GridSearchCV, RandomizedSearchCV, param_grid entwerfen und mit den besten Parametern neu fitten. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Grid Search und Random Search“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Strategien für Cross-Validation
  2. Klassifikationsmetriken im Detail
  3. Grid Search und Random Search
  4. Bayessche Optimierung mit Optuna
← Zurück zu Learn AI with Python