Gridsearchcv
Agora é o momento de aprimorar 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 por meio de
.best_estimator_. - A respectiva pontuação de validação cruzada pode ser visualizada através de
.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_)
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 por meio dos métodos .predict() e .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))
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Deslize para mostrar o menu
Agora é o momento de aprimorar 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 por meio de
.best_estimator_. - A respectiva pontuação de validação cruzada pode ser visualizada através de
.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_)
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 por meio dos métodos .predict() e .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))
Obrigado pelo seu feedback!