Gridsearchcv
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_
.
123456789101112131415import 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_)
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()
.
123456789101112131415import 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))
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
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
Gridsearchcv
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_
.
123456789101112131415import 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_)
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()
.
123456789101112131415import 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))
Takk for tilbakemeldingene dine!