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 door de meest geschikte hyperparameters te identificeren.

Dit proces staat bekend als hyperparameterafstemming. De standaardmethode is het testen van verschillende hyperparameterewaarden, het berekenen van de cross-validatiescore voor elke waarde, en het selecteren van de waarde die de hoogste score oplevert.

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

Bij het aanmaken van een GridSearchCV-object geef je het model en het parameterrooster (param_grid) op, en kun je optioneel de scoringsmaatstaf en het aantal folds specificeren. Het parameterrooster is een dictionary met hyperparameterewaarden die getest worden. Bijvoorbeeld:

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

Deze configuratie evalueert het model met 1, 3, 5 en 7 buren.

Na het initialiseren van GridSearchCV wordt het getraind met .fit(X, y).

  • Het beste model (hoogste cross-validatiescore) is toegankelijk via .best_estimator_.
  • De bijbehorende cross-validatiescore kan worden bekeken via .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

De volgende stap is het gebruik van de best_estimator_ om deze te trainen op de volledige dataset, aangezien deze al is geïdentificeerd als het model met de beste parameters. Deze stap wordt automatisch uitgevoerd door GridSearchCV.

Hierdoor wordt het grid_search-object zelf een getraind model met de optimale parameters. Dit kan direct worden gebruikt voor voorspellingen en evaluatie via de .predict()- en .score()-methoden.

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 het 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 door de meest geschikte hyperparameters te identificeren.

Dit proces staat bekend als hyperparameterafstemming. De standaardmethode is het testen van verschillende hyperparameterewaarden, het berekenen van de cross-validatiescore voor elke waarde, en het selecteren van de waarde die de hoogste score oplevert.

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

Bij het aanmaken van een GridSearchCV-object geef je het model en het parameterrooster (param_grid) op, en kun je optioneel de scoringsmaatstaf en het aantal folds specificeren. Het parameterrooster is een dictionary met hyperparameterewaarden die getest worden. Bijvoorbeeld:

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

Deze configuratie evalueert het model met 1, 3, 5 en 7 buren.

Na het initialiseren van GridSearchCV wordt het getraind met .fit(X, y).

  • Het beste model (hoogste cross-validatiescore) is toegankelijk via .best_estimator_.
  • De bijbehorende cross-validatiescore kan worden bekeken via .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

De volgende stap is het gebruik van de best_estimator_ om deze te trainen op de volledige dataset, aangezien deze al is geïdentificeerd als het model met de beste parameters. Deze stap wordt automatisch uitgevoerd door GridSearchCV.

Hierdoor wordt het grid_search-object zelf een getraind model met de optimale parameters. Dit kan direct worden gebruikt voor voorspellingen en evaluatie via de .predict()- en .score()-methoden.

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 het 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