Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Gridsearchcv | Modelagem
Introdução ao ML com Scikit-learn

bookGridsearchcv

Agora é hora de melhorar o desempenho do modelo identificando os hiperparâmetros mais adequados.

Esse processo é conhecido como ajuste de hiperparâmetros. A abordagem padrão consiste em testar diferentes valores de hiperparâmetros, calcular a pontuação de validação cruzada para cada um e selecionar o valor que produz a maior pontuação.

Esse processo pode ser realizado utilizando a classe GridSearchCV do módulo sklearn.model_selection.

Ao criar um objeto GridSearchCV, forneça o modelo e o grid de parâmetros (param_grid), podendo também especificar a métrica de avaliação e o número de folds. O grid de parâmetros é um dicionário com os valores de hiperparâmetros a serem testados. Por exemplo:

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

Essa configuração avalia o modelo com 1, 3, 5 e 7 vizinhos.

Após inicializar o GridSearchCV, treine-o com .fit(X, y).

  • O melhor modelo (maior pontuação de validação cruzada) pode ser acessado via .best_estimator_.
  • A pontuação de validação cruzada correspondente pode ser visualizada através de .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

O próximo passo é utilizar o best_estimator_ e treiná-lo em todo o conjunto de dados, já que ele já foi identificado como tendo os melhores parâmetros. Esta etapa é realizada automaticamente pelo GridSearchCV.

Como resultado, o próprio objeto grid_search torna-se um modelo treinado com os parâmetros ideais. Ele pode ser utilizado diretamente para previsão e avaliação através dos métodos .predict() e .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

Depois de treinar um objeto GridSearchCV, é possível utilizá-lo para fazer previsões usando o método .predict(). Isso está correto?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

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

bookGridsearchcv

Deslize para mostrar o menu

Agora é hora de melhorar o desempenho do modelo identificando os hiperparâmetros mais adequados.

Esse processo é conhecido como ajuste de hiperparâmetros. A abordagem padrão consiste em testar diferentes valores de hiperparâmetros, calcular a pontuação de validação cruzada para cada um e selecionar o valor que produz a maior pontuação.

Esse processo pode ser realizado utilizando a classe GridSearchCV do módulo sklearn.model_selection.

Ao criar um objeto GridSearchCV, forneça o modelo e o grid de parâmetros (param_grid), podendo também especificar a métrica de avaliação e o número de folds. O grid de parâmetros é um dicionário com os valores de hiperparâmetros a serem testados. Por exemplo:

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

Essa configuração avalia o modelo com 1, 3, 5 e 7 vizinhos.

Após inicializar o GridSearchCV, treine-o com .fit(X, y).

  • O melhor modelo (maior pontuação de validação cruzada) pode ser acessado via .best_estimator_.
  • A pontuação de validação cruzada correspondente pode ser visualizada através de .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

O próximo passo é utilizar o best_estimator_ e treiná-lo em todo o conjunto de dados, já que ele já foi identificado como tendo os melhores parâmetros. Esta etapa é realizada automaticamente pelo GridSearchCV.

Como resultado, o próprio objeto grid_search torna-se um modelo treinado com os parâmetros ideais. Ele pode ser utilizado diretamente para previsão e avaliação através dos métodos .predict() e .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

Depois de treinar um objeto GridSearchCV, é possível utilizá-lo para fazer previsões usando o método .predict(). Isso está correto?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6
some-alt