0Pricing
Learn AI with Python · Aula

Otimização bayesiana com Optuna

optuna.create_study(), suggest_float/int/categorical, poda e visualização.

Otimização bayesiana com Optuna é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 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.

Mais inteligente que a busca aleatória

A busca em grade e a busca aleatória ignoram os resultados anteriores. A otimização bayesiana aprende com as tentativas anteriores para propor hiperparâmetros mais promissores em seguida, encontrando bons valores com menos avaliações.

O que o Optuna faz

O Optuna é uma estrutura popular para otimização de hiperparâmetros. Você define uma função objetivo; o Optuna faz uma amostragem inteligente dos hiperparâmetros e memoriza o que funcionou.

Como criar um estudo

Um estudo gerencia a otimização. Defina direction como "maximize" para acurácia/AUC ou como "minimize" para perda/erro.

import optuna

study = optuna.create_study(direction="maximize")

A função objetivo

A função objetivo recebe um objeto trial, sugere hiperparâmetros, treina um modelo e retorna a pontuação a ser otimizada.

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

def objective(trial):
    n = trial.suggest_int("n_estimators", 100, 500)
    d = trial.suggest_int("max_depth", 3, 20)
    clf = RandomForestClassifier(n_estimators=n, max_depth=d)
    return cross_val_score(clf, X, y, cv=3).mean()

Como sugerir parâmetros inteiros

trial.suggest_int(name, low, high) escolhe um número inteiro em um intervalo. Adicione step ou log=True para controlar a amostragem.

def objective(trial):
    n_estimators = trial.suggest_int("n_estimators", 100, 1000, step=50)
    return train_and_score(n_estimators)

Como sugerir parâmetros de ponto flutuante

trial.suggest_float(name, low, high) escolhe um número real. Use log=True para parâmetros como a taxa de aprendizado, que abrangem várias ordens de grandeza.

def objective(trial):
    lr = trial.suggest_float("learning_rate", 1e-4, 0.3, log=True)
    subsample = trial.suggest_float("subsample", 0.5, 1.0)
    return train_and_score(lr, subsample)

Como sugerir parâmetros categóricos

trial.suggest_categorical(name, choices) seleciona uma opção de uma lista fixa, sendo perfeito para opções como o tipo de núcleo ou o método de combinação incremental.

def objective(trial):
    kernel = trial.suggest_categorical("kernel", ["linear", "rbf", "poly"])
    return train_svm(kernel)

Como executar a otimização

study.optimize(objective, n_trials=N) executa a busca por N tentativas. Mais tentativas exploram uma parte maior do espaço; com o tempo, o Optuna se concentra nas regiões promissoras.

study.optimize(objective, n_trials=100)

Como ler o melhor resultado

Após a otimização, study.best_params fornece os melhores hiperparâmetros, e study.best_value, a melhor pontuação da função objetivo.

print("Best params:", study.best_params)
print("Best value:", study.best_value)

best = RandomForestClassifier(**study.best_params)
best.fit(X, y)

Como podar tentativas pouco promissoras

O Optuna pode interromper tentativas ruins antecipadamente com mecanismos de poda, economizando recursos computacionais. Informe valores intermediários e verifique trial.should_prune() dentro dos laços de treinamento.

import optuna

study = optuna.create_study(
    direction="maximize",
    pruner=optuna.pruners.MedianPruner(),
)

Por que o Optuna é escalável

O Optuna oferece tentativas em paralelo, armazenamento persistente e visualização da busca. Para modelos caros, sua abordagem bayesiana eficiente no uso de amostras encontra configurações robustas com muito menos tentativas do que a busca em grade ou aleatória.

Verificação rápida

Teste seus conhecimentos sobre o Optuna.

Recapitulação

Recapitulação: o Optuna usa otimização bayesiana para ajustar hiperparâmetros com eficiência. Crie um estudo com uma direction, escreva uma função objetivo que use trial.suggest_int/float/categorical, execute study.optimize(objective, n_trials=N) e depois leia study.best_params e study.best_value. Os mecanismos de poda interrompem tentativas fracas para economizar recursos computacionais.

Perguntas Frequentes

A aula “Otimização bayesiana com Optuna” é grátis?

Sim — o texto completo de “Otimização bayesiana com Optuna” é 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 “Otimização bayesiana com Optuna”?

optuna.create_study(), suggest_float/int/categorical, poda e visualização. 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 4 de 4.

Quanto tempo leva a aula “Otimização bayesiana com Optuna”?

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

  1. Estratégias de validação cruzada
  2. Análise aprofundada de métricas de classificação
  3. Busca em grade e busca aleatória
  4. Otimização bayesiana com Optuna
← Voltar para Learn AI with Python