Gridsearchcv
Nå er det på tide å forsøke å forbedre modellens ytelse! Dette gjøres ved å finne de beste hyperparametrene som passer til oppgaven vår.
Denne prosessen kalles hyperparametertuning. Standardmetoden er å prøve ulike hyperparameterverdier og beregne en kryssvalideringsscore for dem. Deretter velges verdien som gir best score.
Denne prosessen kan utføres ved å bruke GridSearchCV
-klassen fra sklearn.model_selection
-modulen.
Når man konstruerer et GridSearchCV
-objekt, må man sende inn modellen og parametergrid (og eventuelt scoring og antall fold). Parametergrid (param_grid
) er en dictionary som inneholder alle hyperparameterkonfigurasjonene man ønsker å teste. For eksempel vil param_grid={'n_neighbors': [1, 3, 5, 7]}
teste verdiene 1, 3, 5 og 7 som antall naboer.
Deretter tren modellen ved å bruke .fit(X, y)
-metoden. Når treningen er fullført, kan du identifisere modellen som presterte best — den med høyest kryssvalideringsscore, vanligvis basert på nøyaktighet — ved å bruke .best_estimator_
-attributtet.
For å se denne toppmodellens kryssvalideringsscore, bruk .best_score_
-attributtet.
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 vil være å ta best_estimator_
og trene den på hele datasettet siden vi allerede vet at den har de beste parameterne (av de vi har prøvd), og vi kjenner dens score. Dette steget er så åpenbart at GridSearchCV
gjør det automatisk.
Dermed blir objektet (grid_search
i vårt eksempel) en trent modell med de beste parameterne.
Vi kan nå bruke dette objektet til å predikere eller evaluere. Derfor har GridSearchCV
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 å forsøke å forbedre modellens ytelse! Dette gjøres ved å finne de beste hyperparametrene som passer til oppgaven vår.
Denne prosessen kalles hyperparametertuning. Standardmetoden er å prøve ulike hyperparameterverdier og beregne en kryssvalideringsscore for dem. Deretter velges verdien som gir best score.
Denne prosessen kan utføres ved å bruke GridSearchCV
-klassen fra sklearn.model_selection
-modulen.
Når man konstruerer et GridSearchCV
-objekt, må man sende inn modellen og parametergrid (og eventuelt scoring og antall fold). Parametergrid (param_grid
) er en dictionary som inneholder alle hyperparameterkonfigurasjonene man ønsker å teste. For eksempel vil param_grid={'n_neighbors': [1, 3, 5, 7]}
teste verdiene 1, 3, 5 og 7 som antall naboer.
Deretter tren modellen ved å bruke .fit(X, y)
-metoden. Når treningen er fullført, kan du identifisere modellen som presterte best — den med høyest kryssvalideringsscore, vanligvis basert på nøyaktighet — ved å bruke .best_estimator_
-attributtet.
For å se denne toppmodellens kryssvalideringsscore, bruk .best_score_
-attributtet.
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 vil være å ta best_estimator_
og trene den på hele datasettet siden vi allerede vet at den har de beste parameterne (av de vi har prøvd), og vi kjenner dens score. Dette steget er så åpenbart at GridSearchCV
gjør det automatisk.
Dermed blir objektet (grid_search
i vårt eksempel) en trent modell med de beste parameterne.
Vi kan nå bruke dette objektet til å predikere eller evaluere. Derfor har GridSearchCV
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!