Busca em grade e busca aleatória
GridSearchCV, RandomizedSearchCV, projeto de param_grid e reajuste com os melhores parâmetros.
Busca em grade e busca aleatória é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Por que ajustar hiperparâmetros
Os modelos têm hiperparâmetros (como max_depth ou C) que não são aprendidos com os dados, mas definidos antes do treinamento. Os valores corretos podem melhorar muito o desempenho, por isso fazemos uma busca sistemática.
O ajuste manual é propenso a erros
Testar valores manualmente é lento e facilita a introdução de vieses. A busca automatizada combinada com a validação cruzada avalia cada candidato de forma justa e encontra a melhor combinação de maneira reproduzível.
Noções básicas de GridSearchCV
O GridSearchCV testa todas as combinações em uma grade de parâmetros, atribuindo uma pontuação a cada uma com validação cruzada. Ele é exaustivo e garante o melhor ponto da grade.
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
param_grid = {
"n_estimators": [100, 200, 300],
"max_depth": [4, 8, None],
}
gs = GridSearchCV(RandomForestClassifier(), param_grid, cv=5)
gs.fit(X, y)A explosão combinatória
O custo da busca em grade cresce com o produto da quantidade de opções de todos os parâmetros multiplicado pelo número de partições. Três parâmetros com 5 valores cada em uma CV de 5 partições resultam em 5*5*5*5 = 625 fits. As grades ficam caras rapidamente.
Atribuição de pontuações no GridSearchCV
O parâmetro scoring escolhe a métrica a ser otimizada. Para dados desbalanceados, escolha f1 ou roc_auc em vez da acurácia padrão.
from sklearn.model_selection import GridSearchCV
gs = GridSearchCV(
RandomForestClassifier(),
param_grid,
cv=5,
scoring="roc_auc",
)
gs.fit(X, y)Paralelização com n_jobs
Cada fit de candidato é independente, portanto defina n_jobs=-1 para executá-los em todos os núcleos de CPU. Isso reduz drasticamente o tempo decorrido para grades grandes.
from sklearn.model_selection import GridSearchCV
gs = GridSearchCV(
RandomForestClassifier(),
param_grid,
cv=5,
n_jobs=-1,
verbose=1,
)Como ler os melhores resultados
Após o ajuste, consulte best_params_ para ver a combinação vencedora, best_score_ para ver sua pontuação de CV e best_estimator_ para obter o modelo reajustado, pronto para fazer previsões.
gs.fit(X, y)
print("Best params:", gs.best_params_)
print("Best CV score:", gs.best_score_)
best_model = gs.best_estimator_
best_model.predict(X_new)Como inspecionar todos os resultados
cv_results_ é um dicionário (ótimo para usar como um DataFrame) que mostra a pontuação e a posição de cada candidato. Use-o para entender quais parâmetros importam e quão estáveis são as pontuações.
import pandas as pd
results = pd.DataFrame(gs.cv_results_)
print(results[["params", "mean_test_score", "rank_test_score"]].head())RandomizedSearchCV
Quando o espaço de busca é enorme, o RandomizedSearchCV amostra uma quantidade fixa de combinações aleatórias em vez de testar todas. Você controla o orçamento com n_iter.
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
param_dist = {
"n_estimators": randint(100, 500),
"max_depth": randint(3, 20),
}
rs = RandomizedSearchCV(
RandomForestClassifier(), param_dist,
n_iter=30, cv=5, random_state=0,
)
rs.fit(X, y)Por que a busca aleatória costuma vencer
Em muitos problemas, apenas alguns hiperparâmetros realmente importam. A busca aleatória explora essas dimensões importantes com mais eficiência do que uma grade rígida, encontrando boas soluções com muito menos tentativas.
Grade ou aleatória: orientações
Use GridSearchCV para um conjunto pequeno e discreto de candidatos. Use RandomizedSearchCV para espaços grandes ou contínuos nos quais você define um orçamento de n_iter. Ambos reajustam automaticamente o melhor modelo quando refit=True.
Verificação rápida
Teste seus conhecimentos sobre busca de hiperparâmetros.
Recapitulação
Recapitulação: o GridSearchCV testa exaustivamente todas as combinações em uma param_grid; o custo explode conforme o tamanho aumenta. O RandomizedSearchCV amostra n_iter combinações para espaços grandes. Defina scoring para escolher sua métrica, n_jobs=-1 para obter velocidade e leia best_params_, best_score_ e best_estimator_ após o ajuste.
Perguntas Frequentes
A aula “Busca em grade e busca aleatória” é grátis?
Sim — o texto completo de “Busca em grade e busca aleatória” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Busca em grade e busca aleatória”?
GridSearchCV, RandomizedSearchCV, projeto de param_grid e reajuste com os melhores parâmetros. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Busca em grade e busca aleatória”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Estratégias de validação cruzada
- Análise aprofundada de métricas de classificação
- Busca em grade e busca aleatória
- Otimização bayesiana com Optuna