Gridsearchcv
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 standaardbenadering is om verschillende hyperparameterwaarden te testen, de cross-validatiescore voor elke waarde te berekenen en de waarde te selecteren die de hoogste score oplevert.
Dit proces kan worden uitgevoerd met behulp van de GridSearchCV
-klasse van 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 hyperparameterwaarden 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
train je het 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_
.
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_)
De volgende stap is het gebruik van de best_estimator_
om deze te trainen op de volledige dataset, aangezien deze reeds 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 model kan direct worden gebruikt voor voorspellingen en evaluaties via de .predict()
- en .score()
-methoden.
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))
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
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 standaardbenadering is om verschillende hyperparameterwaarden te testen, de cross-validatiescore voor elke waarde te berekenen en de waarde te selecteren die de hoogste score oplevert.
Dit proces kan worden uitgevoerd met behulp van de GridSearchCV
-klasse van 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 hyperparameterwaarden 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
train je het 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_
.
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_)
De volgende stap is het gebruik van de best_estimator_
om deze te trainen op de volledige dataset, aangezien deze reeds 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 model kan direct worden gebruikt voor voorspellingen en evaluaties via de .predict()
- en .score()
-methoden.
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))
Bedankt voor je feedback!