Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Gridsearchcv | Modellering
ML-introduktion Med Scikit-learn

bookGridsearchcv

Nu är det dags att förbättra modellens prestanda genom att identifiera de mest lämpliga hyperparametrarna.

Denna process kallas hyperparametertuning. Den standardiserade metoden är att testa olika hyperparametervärden, beräkna korsvalideringspoängen för varje, och välja det värde som ger högst poäng.

Denna process kan utföras med hjälp av klassen GridSearchCV från modulen sklearn.model_selection.

När du skapar ett GridSearchCV-objekt anger du modellen och parametergriden (param_grid), och kan valfritt specificera utvärderingsmetrik och antal vikningar. Parametergriden är en ordbok med hyperparametervärden att testa. Till exempel:

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

Denna konfiguration utvärderar modellen med 1, 3, 5 och 7 grannar.

Efter att ha initierat GridSearchCV tränas den med .fit(X, y).

  • Bästa modellen (högsta korsvalideringspoäng) kan nås via .best_estimator_.
  • Motsvarande korsvalideringspoäng kan ses genom .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

Nästa steg är att ta best_estimator_ och träna den på hela datasettet, eftersom den redan har identifierats med de bästa parametrarna. Detta steg utförs automatiskt av GridSearchCV.

Som ett resultat blir grid_search-objektet i sig en tränad modell med optimala parametrar. Den kan användas direkt för prediktion och utvärdering via metoderna .predict() och .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

När du har tränat ett GridSearchCV-objekt kan du använda det för att göra prediktioner med hjälp av metoden .predict(). Är detta korrekt?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.13

bookGridsearchcv

Svep för att visa menyn

Nu är det dags att förbättra modellens prestanda genom att identifiera de mest lämpliga hyperparametrarna.

Denna process kallas hyperparametertuning. Den standardiserade metoden är att testa olika hyperparametervärden, beräkna korsvalideringspoängen för varje, och välja det värde som ger högst poäng.

Denna process kan utföras med hjälp av klassen GridSearchCV från modulen sklearn.model_selection.

När du skapar ett GridSearchCV-objekt anger du modellen och parametergriden (param_grid), och kan valfritt specificera utvärderingsmetrik och antal vikningar. Parametergriden är en ordbok med hyperparametervärden att testa. Till exempel:

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

Denna konfiguration utvärderar modellen med 1, 3, 5 och 7 grannar.

Efter att ha initierat GridSearchCV tränas den med .fit(X, y).

  • Bästa modellen (högsta korsvalideringspoäng) kan nås via .best_estimator_.
  • Motsvarande korsvalideringspoäng kan ses genom .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

Nästa steg är att ta best_estimator_ och träna den på hela datasettet, eftersom den redan har identifierats med de bästa parametrarna. Detta steg utförs automatiskt av GridSearchCV.

Som ett resultat blir grid_search-objektet i sig en tränad modell med optimala parametrar. Den kan användas direkt för prediktion och utvärdering via metoderna .predict() och .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

När du har tränat ett GridSearchCV-objekt kan du använda det för att göra prediktioner med hjälp av metoden .predict(). Är detta korrekt?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6
some-alt