Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Gridsearchcv | Modellierung
ML-Einführung Mit Scikit-Learn

bookGridsearchcv

Nun ist es an der Zeit, die Modellleistung zu verbessern, indem die am besten geeigneten Hyperparameter identifiziert werden.

Dieser Prozess wird als Hyperparameter-Optimierung bezeichnet. Der Standardansatz besteht darin, verschiedene Hyperparameterwerte zu testen, für jeden den Kreuzvalidierungswert zu berechnen und den Wert auszuwählen, der den höchsten Wert erzielt.

Dieser Prozess kann mit der Klasse GridSearchCV aus dem Modul sklearn.model_selection durchgeführt werden.

Beim Erstellen eines GridSearchCV-Objekts werden das Modell und das Parameter-Raster (param_grid) angegeben; optional können auch die Bewertungsmetrik und die Anzahl der Folds festgelegt werden. Das Parameter-Raster ist ein Dictionary mit den zu testenden Hyperparameterwerten. Zum Beispiel:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Mit dieser Konfiguration wird das Modell mit 1, 3, 5 und 7 Nachbarn bewertet.

Nach der Initialisierung von GridSearchCV wird das Training mit .fit(X, y) durchgeführt.

  • Das beste Modell (höchster Kreuzvalidierungswert) ist über .best_estimator_ zugänglich.
  • Der entsprechende Kreuzvalidierungswert kann über .best_score_ eingesehen werden.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Der nächste Schritt besteht darin, den best_estimator_ auf dem gesamten Datensatz zu trainieren, da dieser bereits als Modell mit den besten Parametern identifiziert wurde. Dieser Schritt wird von GridSearchCV automatisch durchgeführt.

Dadurch wird das grid_search-Objekt selbst zu einem trainierten Modell mit optimalen Parametern. Es kann direkt für Vorhersagen und Auswertungen über die Methoden .predict() und .score() verwendet werden.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Nachdem ein GridSearchCV-Objekt trainiert wurde, kann es zur Vorhersage mit der Methode .predict() verwendet werden. Ist dies korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Swipe um das Menü anzuzeigen

Nun ist es an der Zeit, die Modellleistung zu verbessern, indem die am besten geeigneten Hyperparameter identifiziert werden.

Dieser Prozess wird als Hyperparameter-Optimierung bezeichnet. Der Standardansatz besteht darin, verschiedene Hyperparameterwerte zu testen, für jeden den Kreuzvalidierungswert zu berechnen und den Wert auszuwählen, der den höchsten Wert erzielt.

Dieser Prozess kann mit der Klasse GridSearchCV aus dem Modul sklearn.model_selection durchgeführt werden.

Beim Erstellen eines GridSearchCV-Objekts werden das Modell und das Parameter-Raster (param_grid) angegeben; optional können auch die Bewertungsmetrik und die Anzahl der Folds festgelegt werden. Das Parameter-Raster ist ein Dictionary mit den zu testenden Hyperparameterwerten. Zum Beispiel:

param_grid = {'n_neighbors': [1, 3, 5, 7]}

Mit dieser Konfiguration wird das Modell mit 1, 3, 5 und 7 Nachbarn bewertet.

Nach der Initialisierung von GridSearchCV wird das Training mit .fit(X, y) durchgeführt.

  • Das beste Modell (höchster Kreuzvalidierungswert) ist über .best_estimator_ zugänglich.
  • Der entsprechende Kreuzvalidierungswert kann über .best_score_ eingesehen werden.
123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Print the best estimator and its cross-validation score print(grid_search.best_estimator_) print(grid_search.best_score_)
copy

Der nächste Schritt besteht darin, den best_estimator_ auf dem gesamten Datensatz zu trainieren, da dieser bereits als Modell mit den besten Parametern identifiziert wurde. Dieser Schritt wird von GridSearchCV automatisch durchgeführt.

Dadurch wird das grid_search-Objekt selbst zu einem trainierten Modell mit optimalen Parametern. Es kann direkt für Vorhersagen und Auswertungen über die Methoden .predict() und .score() verwendet werden.

123456789101112131415
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Create the param_grid and initialize GridSearchCV object param_grid = {'n_neighbors': [1,3,5,7,9]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid) # Train the GridSearchCV object. During training it finds the best parameters grid_search.fit(X, y) # Evaluate the grid_search on the training set # It is done only to show that .score() method works, evaluating on training set is not reliable. print(grid_search.score(X, y))
copy
question mark

Nachdem ein GridSearchCV-Objekt trainiert wurde, kann es zur Vorhersage mit der Methode .predict() verwendet werden. Ist dies korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6
some-alt