A Falha do GridSearchCV
Deslize para mostrar o menu
Antes de utilizar o GridSearchCV, observe que o KNeighborsClassifier possui mais hiperparâmetros além do n_neighbors. Dois importantes são weights e p.
Pesos
Por padrão, o classificador utiliza weights='uniform', o que significa que todos os k vizinhos votam igualmente.
Ao definir weights='distance', vizinhos mais próximos têm mais influência, frequentemente melhorando 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 inteiro positivo. Existem muitas distâncias diferentes, mas elas são mais difíceis de visualizar do que p=1 ou p=2.
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 tenta todas as combinações possíveis para encontrar a melhor, então ele 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 é aceitável para conjuntos de dados pequenos, mas para conjuntos maiores se torna muito lento.
Para reduzir o tempo de computação, RandomizedSearchCV testa apenas um subconjunto aleatório de combinações, geralmente encontrando bons resultados muito mais rápido do que uma busca em grade completa.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo