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 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_.
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 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.
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.
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 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_.
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 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.
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!