Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda A Falha do GridSearchCV | Modelagem
Introdução ao Aprendizado de Máquina com Python

bookA Falha do GridSearchCV

Antes de utilizar o GridSearchCV, observe que o KNeighborsClassifier possui mais hiperparâmetros além de n_neighbors. Dois importantes são weights e p.

Pesos

Por padrão, o classificador utiliza weights='uniform', ou seja, todos os k vizinhos têm o mesmo peso na votação. Ao definir weights='distance', vizinhos mais próximos têm mais influência, o que frequentemente melhora as previsões quando pontos próximos são mais relevantes.

P

O parâmetro p controla a métrica de distância:

  • p=1: distância de Manhattan;
  • p=2: distância Euclidiana.

O parâmetro p pode assumir qualquer número inteiro positivo. Existem muitas distâncias diferentes, mas elas são mais difíceis de visualizar do que p=1 ou p=2.

Note
Nota

Não se preocupe se os detalhes de weights ou p não estiverem claros. Eles são apresentados apenas para mostrar que existe mais de um hiperparâmetro que pode influenciar as previsões do modelo. Considere-os como exemplos de hiperparâmetros que podem ser ajustados.

Anteriormente, apenas n_neighbors era ajustado. Para pesquisar todos os três hiperparâmetros, utilize:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV testa todas as combinações possíveis para encontrar a melhor, então irá testar todas estas:

Uma grade maior como:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

cria 100 combinações. Com validação cruzada de 5 partes, o modelo é treinado 500 vezes. Isso é adequado para conjuntos de dados pequenos, mas para conjuntos maiores torna-se muito lento.

Para reduzir o tempo de computação, RandomizedSearchCV testa apenas um subconjunto aleatório das combinações, geralmente encontrando bons resultados muito mais rápido do que uma busca em grade completa.

question mark

O principal problema do GridSearchCV é que ele testa todas as combinações possíveis (do que está especificado em param_grid), o que pode levar muito tempo. Esta afirmação está correta?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookA Falha do GridSearchCV

Deslize para mostrar o menu

Antes de utilizar o GridSearchCV, observe que o KNeighborsClassifier possui mais hiperparâmetros além de n_neighbors. Dois importantes são weights e p.

Pesos

Por padrão, o classificador utiliza weights='uniform', ou seja, todos os k vizinhos têm o mesmo peso na votação. Ao definir weights='distance', vizinhos mais próximos têm mais influência, o que frequentemente melhora as previsões quando pontos próximos são mais relevantes.

P

O parâmetro p controla a métrica de distância:

  • p=1: distância de Manhattan;
  • p=2: distância Euclidiana.

O parâmetro p pode assumir qualquer número inteiro positivo. Existem muitas distâncias diferentes, mas elas são mais difíceis de visualizar do que p=1 ou p=2.

Note
Nota

Não se preocupe se os detalhes de weights ou p não estiverem claros. Eles são apresentados apenas para mostrar que existe mais de um hiperparâmetro que pode influenciar as previsões do modelo. Considere-os como exemplos de hiperparâmetros que podem ser ajustados.

Anteriormente, apenas n_neighbors era ajustado. Para pesquisar todos os três hiperparâmetros, utilize:

param_grid = {
    'n_neighbors': [1, 3, 5, 7],
    'weights': ['distance', 'uniform'],
    'p': [1, 2]
}

GridSearchCV testa todas as combinações possíveis para encontrar a melhor, então irá testar todas estas:

Uma grade maior como:

param_grid = {
    'n_neighbors': [...],
    'weights': ['distance', 'uniform'],
    'p': [1, 2, 3, 4, 5]
}

cria 100 combinações. Com validação cruzada de 5 partes, o modelo é treinado 500 vezes. Isso é adequado para conjuntos de dados pequenos, mas para conjuntos maiores torna-se muito lento.

Para reduzir o tempo de computação, RandomizedSearchCV testa apenas um subconjunto aleatório das combinações, geralmente encontrando bons resultados muito mais rápido do que uma busca em grade completa.

question mark

O principal problema do GridSearchCV é que ele testa todas as combinações possíveis (do que está especificado em param_grid), o que pode levar muito tempo. Esta afirmação está correta?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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