Optimización bayesiana con Optuna
optuna.create_study(), suggest_float/int/categorical, pruning y visualización.
Optimización bayesiana con Optuna es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Más inteligente que la búsqueda aleatoria
La búsqueda en cuadrícula y la búsqueda aleatoria ignoran los resultados anteriores. La optimización bayesiana aprende de las pruebas previas para proponer después hiperparámetros más prometedores y encontrar buenos valores con menos evaluaciones.
Qué hace Optuna
Optuna es un framework popular para la optimización de hiperparámetros. Usted define una función objetivo; Optuna toma muestras de hiperparámetros de forma inteligente y recuerda qué funcionó.
Creación de un estudio
Un estudio gestiona la optimización. Establezca direction en "maximize" para la precisión o AUC, o en "minimize" para la pérdida o el error.
import optuna
study = optuna.create_study(direction="maximize")La función objetivo
La función objetivo recibe un objeto trial, sugiere hiperparámetros, entrena un modelo y devuelve la puntuación que se va a optimizar.
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()Sugerencia de parámetros enteros
trial.suggest_int(name, low, high) elige un entero dentro de un intervalo. Añada step o log=True para controlar el muestreo.
def objective(trial):
n_estimators = trial.suggest_int("n_estimators", 100, 1000, step=50)
return train_and_score(n_estimators)Sugerencia de parámetros decimales
trial.suggest_float(name, low, high) elige un número real. Use log=True para parámetros como la tasa de aprendizaje, que abarcan varios órdenes de magnitud.
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)Sugerencia de parámetros categóricos
trial.suggest_categorical(name, choices) selecciona un valor de una lista fija, lo que resulta perfecto para opciones como el tipo de kernel o el método de boosting.
def objective(trial):
kernel = trial.suggest_categorical("kernel", ["linear", "rbf", "poly"])
return train_svm(kernel)Ejecución de la optimización
study.optimize(objective, n_trials=N) ejecuta la búsqueda durante N pruebas. Un mayor número de pruebas explora una parte más amplia del espacio; con el tiempo, Optuna se concentra en las regiones prometedoras.
study.optimize(objective, n_trials=100)Cómo leer el mejor resultado
Después de optimizar, study.best_params proporciona los mejores hiperparámetros y study.best_value, la mejor puntuación de la función objetivo.
print("Best params:", study.best_params)
print("Best value:", study.best_value)
best = RandomForestClassifier(**study.best_params)
best.fit(X, y)Poda de pruebas poco prometedoras
Optuna puede detener pronto las pruebas que dan malos resultados mediante podadores, lo que ahorra recursos de cómputo. Informe de los valores intermedios y compruebe trial.should_prune() dentro de los bucles de entrenamiento.
import optuna
study = optuna.create_study(
direction="maximize",
pruner=optuna.pruners.MedianPruner(),
)Por qué Optuna escala
Optuna admite pruebas en paralelo, almacenamiento persistente y visualización de la búsqueda. En modelos costosos, su enfoque bayesiano, eficiente en el muestreo, encuentra configuraciones sólidas con muchas menos pruebas que la búsqueda en cuadrícula o aleatoria.
Comprobación rápida
Compruebe sus conocimientos sobre Optuna.
Resumen
Resumen: Optuna utiliza la optimización bayesiana para ajustar hiperparámetros de forma eficiente. Cree un estudio con una direction, escriba una función objetivo que use trial.suggest_int/float/categorical, ejecute study.optimize(objective, n_trials=N) y, después, consulte study.best_params y study.best_value. Los podadores detienen las pruebas poco prometedoras para ahorrar recursos de cómputo.
Preguntas frecuentes
¿La lección «Optimización bayesiana con Optuna» es gratis?
Sí — el texto completo de «Optimización bayesiana con Optuna» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Optimización bayesiana con Optuna»?
optuna.create_study(), suggest_float/int/categorical, pruning y visualización. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Optimización bayesiana con Optuna»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estrategias de validación cruzada
- Análisis profundo de métricas de clasificación
- Búsqueda en rejilla y búsqueda aleatoria
- Optimización bayesiana con Optuna