Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Gridsearchcv | Modellering
ML Introduktion med Scikit-learn

bookGridsearchcv

Nu er det tid til at forbedre modellens ydeevne ved at identificere de mest egnede hyperparametre.

Denne proces kaldes hyperparameter-tuning. Den standardiserede tilgang er at teste forskellige hyperparameterværdier, beregne krydsvalideringsscoren for hver, og vælge den værdi, der giver den højeste score.

Denne proces kan udføres ved hjælp af GridSearchCV-klassen fra modulet sklearn.model_selection.

Når der oprettes et GridSearchCV-objekt, angives modellen og parametergrid (param_grid), og eventuelt specificeres scoringsmetrik og antal fold. Parametergrid er en ordbog med hyperparameterværdier, der skal testes. For eksempel:

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

Denne konfiguration evaluerer modellen med 1, 3, 5 og 7 naboer.

Efter initialisering af GridSearchCV trænes den med .fit(X, y).

  • Den bedste model (højeste krydsvalideringsscore) kan tilgås via .best_estimator_.
  • Den tilsvarende krydsvalideringsscore kan ses gennem .best_score_.
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

Næste trin er at tage best_estimator_ og træne den på hele datasættet, da den allerede er identificeret med de bedste parametre. Dette trin udføres automatisk af GridSearchCV.

Som resultat bliver grid_search-objektet selv en trænet model med de optimale parametre. Den kan bruges direkte til forudsigelse og evaluering via metoderne .predict() og .score().

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

Når du har trænet et GridSearchCV-objekt, kan du bruge det til at lave forudsigelser ved hjælp af .predict()-metoden. Er det korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Stryg for at vise menuen

Nu er det tid til at forbedre modellens ydeevne ved at identificere de mest egnede hyperparametre.

Denne proces kaldes hyperparameter-tuning. Den standardiserede tilgang er at teste forskellige hyperparameterværdier, beregne krydsvalideringsscoren for hver, og vælge den værdi, der giver den højeste score.

Denne proces kan udføres ved hjælp af GridSearchCV-klassen fra modulet sklearn.model_selection.

Når der oprettes et GridSearchCV-objekt, angives modellen og parametergrid (param_grid), og eventuelt specificeres scoringsmetrik og antal fold. Parametergrid er en ordbog med hyperparameterværdier, der skal testes. For eksempel:

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

Denne konfiguration evaluerer modellen med 1, 3, 5 og 7 naboer.

Efter initialisering af GridSearchCV trænes den med .fit(X, y).

  • Den bedste model (højeste krydsvalideringsscore) kan tilgås via .best_estimator_.
  • Den tilsvarende krydsvalideringsscore kan ses gennem .best_score_.
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

Næste trin er at tage best_estimator_ og træne den på hele datasættet, da den allerede er identificeret med de bedste parametre. Dette trin udføres automatisk af GridSearchCV.

Som resultat bliver grid_search-objektet selv en trænet model med de optimale parametre. Den kan bruges direkte til forudsigelse og evaluering via metoderne .predict() og .score().

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

Når du har trænet et GridSearchCV-objekt, kan du bruge det til at lave forudsigelser ved hjælp af .predict()-metoden. Er det korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6
some-alt