Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Gridsearchcv | Modellering
ML Introductie Met Scikit-learn

bookGridsearchcv

Nu is het tijd om de prestaties van het model te verbeteren! Dit gebeurt door de beste hyperparameters te vinden die bij onze taak passen.

Dit proces heet hyperparameterafstemming. De standaardaanpak is om verschillende waarden voor hyperparameters te proberen en voor elk een cross-validatiescore te berekenen. Kies vervolgens de waarde die resulteert in de beste score.

Dit proces kan worden uitgevoerd met behulp van de GridSearchCV-klasse uit de module sklearn.model_selection.

Bij het aanmaken van een GridSearchCV-object moeten we het model en het parameterrooster (en optioneel scoring en het aantal folds) meegeven. Het parameterrooster (param_grid) is een dictionary met alle hyperparameterconfiguraties die we willen proberen. Bijvoorbeeld, param_grid={'n_neighbors': [1, 3, 5, 7]} probeert de waarden 1, 3, 5 en 7 als aantal buren.

Train vervolgens het model met de .fit(X, y)-methode. Na het trainen kun je het model identificeren dat het beste presteerde — het model met de hoogste cross-validatiescore, meestal gebaseerd op nauwkeurigheid — door de .best_estimator_-attribuut te raadplegen.

Om de cross-validatiescore van dit best presterende model te bekijken, gebruik je het .best_score_-attribuut.

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

De volgende stap is het gebruik van de best_estimator_ om deze te trainen op de volledige dataset, aangezien we nu weten dat deze de beste parameters heeft (van de geteste opties) en we de score kennen. Deze stap is zo vanzelfsprekend dat GridSearchCV dit standaard uitvoert.

Het object (grid_search in ons voorbeeld) wordt dus een getraind model met de beste parameters. Dit object kan nu worden gebruikt voor voorspellingen of evaluaties. Daarom beschikt GridSearchCV over de methoden .predict() en .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

Zodra een GridSearchCV-object is getraind, kan dit worden gebruikt om voorspellingen te doen met de .predict()-methode. Is dit correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Veeg om het menu te tonen

Nu is het tijd om de prestaties van het model te verbeteren! Dit gebeurt door de beste hyperparameters te vinden die bij onze taak passen.

Dit proces heet hyperparameterafstemming. De standaardaanpak is om verschillende waarden voor hyperparameters te proberen en voor elk een cross-validatiescore te berekenen. Kies vervolgens de waarde die resulteert in de beste score.

Dit proces kan worden uitgevoerd met behulp van de GridSearchCV-klasse uit de module sklearn.model_selection.

Bij het aanmaken van een GridSearchCV-object moeten we het model en het parameterrooster (en optioneel scoring en het aantal folds) meegeven. Het parameterrooster (param_grid) is een dictionary met alle hyperparameterconfiguraties die we willen proberen. Bijvoorbeeld, param_grid={'n_neighbors': [1, 3, 5, 7]} probeert de waarden 1, 3, 5 en 7 als aantal buren.

Train vervolgens het model met de .fit(X, y)-methode. Na het trainen kun je het model identificeren dat het beste presteerde — het model met de hoogste cross-validatiescore, meestal gebaseerd op nauwkeurigheid — door de .best_estimator_-attribuut te raadplegen.

Om de cross-validatiescore van dit best presterende model te bekijken, gebruik je het .best_score_-attribuut.

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

De volgende stap is het gebruik van de best_estimator_ om deze te trainen op de volledige dataset, aangezien we nu weten dat deze de beste parameters heeft (van de geteste opties) en we de score kennen. Deze stap is zo vanzelfsprekend dat GridSearchCV dit standaard uitvoert.

Het object (grid_search in ons voorbeeld) wordt dus een getraind model met de beste parameters. Dit object kan nu worden gebruikt voor voorspellingen of evaluaties. Daarom beschikt GridSearchCV over de methoden .predict() en .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

Zodra een GridSearchCV-object is getraind, kan dit worden gebruikt om voorspellingen te doen met de .predict()-methode. Is dit correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6
some-alt