Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Escolhendo o Melhor Valor de K | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Fundamentos do Aprendizado Supervisionado

bookDesafio: Escolhendo o Melhor Valor de K

Como mostrado nos capítulos anteriores, as previsões do modelo podem variar dependendo do valor de k (o número de vizinhos). Ao construir um modelo k-NN, é importante escolher o valor de k que proporciona o melhor desempenho.

Uma abordagem comum é utilizar a validação cruzada para avaliar o desempenho do modelo. É possível executar um loop e calcular as pontuações de validação cruzada para uma faixa de valores de k, selecionando aquele com a maior pontuação. Este é o método mais amplamente utilizado.

Para realizar isso, o sklearn oferece uma ferramenta conveniente: a classe GridSearchCV.

Construtor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — objeto do modelo;
  • param_grid — dicionário com os valores dos parâmetros a serem testados;
  • scoring — métrica utilizada para a pontuação da validação cruzada;
  • cv — número de divisões (5 por padrão);

Métodos:

  • fit(X, y) — treina os modelos utilizando X, y;
  • predict(X) — prevê a classe para X;
  • score(X, y) — retorna a acurácia para o conjunto X, y;

Atributos:

  • best_estimator_ — objeto do modelo com a maior pontuação;
  • best_score_ — pontuação do best_estimator_.

O parâmetro param_grid recebe um dicionário onde as chaves são os nomes dos parâmetros e os valores são listas de opções a serem testadas. Por exemplo, para testar valores de 1 a 99 para n_neighbors, pode-se escrever:

param_grid = {'n_neighbors': range(1, 100)}

Ao chamar o método .fit(X, y) no objeto GridSearchCV, será realizada a busca na grade de parâmetros para encontrar os melhores parâmetros e, em seguida, re-treinar o modelo em todo o conjunto de dados utilizando esses melhores parâmetros.

É possível acessar a melhor pontuação utilizando o atributo .best_score_ e fazer previsões com o modelo otimizado usando o método .predict(). Da mesma forma, pode-se recuperar o melhor modelo utilizando o atributo .best_estimator_.

Tarefa

Swipe to start coding

Você recebe o conjunto de dados de avaliações de Star Wars armazenado como um DataFrame na variável df.

  • Inicialize param_grid como um dicionário contendo o parâmetro n_neighbors com os valores [3, 9, 18, 27].
  • Crie um objeto GridSearchCV usando param_grid com validação cruzada de 4 divisões, treine-o e armazene-o na variável grid_search.
  • Recupere o melhor modelo de grid_search e armazene-o na variável best_model.
  • Recupere a pontuação do melhor modelo e armazene-a na variável best_score.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 20
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

close

bookDesafio: Escolhendo o Melhor Valor de K

Deslize para mostrar o menu

Como mostrado nos capítulos anteriores, as previsões do modelo podem variar dependendo do valor de k (o número de vizinhos). Ao construir um modelo k-NN, é importante escolher o valor de k que proporciona o melhor desempenho.

Uma abordagem comum é utilizar a validação cruzada para avaliar o desempenho do modelo. É possível executar um loop e calcular as pontuações de validação cruzada para uma faixa de valores de k, selecionando aquele com a maior pontuação. Este é o método mais amplamente utilizado.

Para realizar isso, o sklearn oferece uma ferramenta conveniente: a classe GridSearchCV.

Construtor:

  • GridSearchCV(estimator, param_grid, scoring, cv = 5)
  • estimator — objeto do modelo;
  • param_grid — dicionário com os valores dos parâmetros a serem testados;
  • scoring — métrica utilizada para a pontuação da validação cruzada;
  • cv — número de divisões (5 por padrão);

Métodos:

  • fit(X, y) — treina os modelos utilizando X, y;
  • predict(X) — prevê a classe para X;
  • score(X, y) — retorna a acurácia para o conjunto X, y;

Atributos:

  • best_estimator_ — objeto do modelo com a maior pontuação;
  • best_score_ — pontuação do best_estimator_.

O parâmetro param_grid recebe um dicionário onde as chaves são os nomes dos parâmetros e os valores são listas de opções a serem testadas. Por exemplo, para testar valores de 1 a 99 para n_neighbors, pode-se escrever:

param_grid = {'n_neighbors': range(1, 100)}

Ao chamar o método .fit(X, y) no objeto GridSearchCV, será realizada a busca na grade de parâmetros para encontrar os melhores parâmetros e, em seguida, re-treinar o modelo em todo o conjunto de dados utilizando esses melhores parâmetros.

É possível acessar a melhor pontuação utilizando o atributo .best_score_ e fazer previsões com o modelo otimizado usando o método .predict(). Da mesma forma, pode-se recuperar o melhor modelo utilizando o atributo .best_estimator_.

Tarefa

Swipe to start coding

Você recebe o conjunto de dados de avaliações de Star Wars armazenado como um DataFrame na variável df.

  • Inicialize param_grid como um dicionário contendo o parâmetro n_neighbors com os valores [3, 9, 18, 27].
  • Crie um objeto GridSearchCV usando param_grid com validação cruzada de 4 divisões, treine-o e armazene-o na variável grid_search.
  • Recupere o melhor modelo de grid_search e armazene-o na variável best_model.
  • Recupere a pontuação do melhor modelo e armazene-a na variável best_score.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 20
single

single

some-alt