Gridsearchcv
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.
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 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()
.
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! 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.
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 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()
.
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!