Gridsearchcv
Nå er det på tide å forbedre modellens ytelse ved å identifisere de mest egnede hyperparametrene.
Denne prosessen kalles hyperparameterjustering. Standardmetoden er å teste ulike verdier for hyperparametere, 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 evalueringsmetrikken 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 initialisering av GridSearchCV, tren modellen 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 trinn tas best_estimator_ og trenes 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 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
What other hyperparameters can I tune with GridSearchCV?
How do I interpret the results from GridSearchCV?
Can you explain how cross-validation works in this context?
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 hyperparameterjustering. Standardmetoden er å teste ulike verdier for hyperparametere, 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 evalueringsmetrikken 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 initialisering av GridSearchCV, tren modellen 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 trinn tas best_estimator_ og trenes 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 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!