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

bookGridsearchcv

Nå er det på tide å forbedre modellens ytelse ved å identifisere de mest egnede hyperparametrene.

Denne prosessen kalles hyperparametertuning. Standardmetoden er å teste ulike hyperparameterverdier, beregne kryssvalideringsscore for hver, og velge verdien som gir høyest score.

Denne prosessen kan utføres ved å bruke GridSearchCV-klassen fra sklearn.model_selection-modulen.

Når du oppretter et GridSearchCV-objekt, oppgi modellen og parametergrid (param_grid), og eventuelt angi evalueringsmetode og antall fold. Parametergrid er en ordbok med hyperparameterverdier som skal testes. For eksempel:

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

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

Etter å ha initialisert GridSearchCV, tren den med .fit(X, y).

  • Beste modell (høyest kryssvalideringsscore) kan nås via .best_estimator_.
  • Tilsvarende kryssvalideringsscore kan vises gjennom .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

Neste steg er å ta best_estimator_ og trene den på hele datasettet, siden den allerede er identifisert med de beste parameterne. Dette steget utføres automatisk av GridSearchCV.

Som et resultat blir grid_search-objektet i seg selv en trent modell med optimale parametere. Den kan brukes direkte for prediksjon og evaluering gjennom metodene .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 trent et GridSearchCV-objekt, kan du bruke det til å gjøre prediksjoner ved hjelp av .predict()-metoden. Er dette korrekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Sveip for å vise menyen

Nå er det på tide å forbedre modellens ytelse ved å identifisere de mest egnede hyperparametrene.

Denne prosessen kalles hyperparametertuning. Standardmetoden er å teste ulike hyperparameterverdier, beregne kryssvalideringsscore for hver, og velge verdien som gir høyest score.

Denne prosessen kan utføres ved å bruke GridSearchCV-klassen fra sklearn.model_selection-modulen.

Når du oppretter et GridSearchCV-objekt, oppgi modellen og parametergrid (param_grid), og eventuelt angi evalueringsmetode og antall fold. Parametergrid er en ordbok med hyperparameterverdier som skal testes. For eksempel:

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

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

Etter å ha initialisert GridSearchCV, tren den med .fit(X, y).

  • Beste modell (høyest kryssvalideringsscore) kan nås via .best_estimator_.
  • Tilsvarende kryssvalideringsscore kan vises gjennom .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

Neste steg er å ta best_estimator_ og trene den på hele datasettet, siden den allerede er identifisert med de beste parameterne. Dette steget utføres automatisk av GridSearchCV.

Som et resultat blir grid_search-objektet i seg selv en trent modell med optimale parametere. Den kan brukes direkte for prediksjon og evaluering gjennom metodene .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 trent et GridSearchCV-objekt, kan du bruke det til å gjøre prediksjoner ved hjelp av .predict()-metoden. Er dette korrekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 6
some-alt