Ajuste de hiperparámetros

Cómo ganar una competición de Kaggle con Python

Yauhen Babakhin

Kaggle Grandmaster

Iteraciones

Modelo RMSE de validación RMSE del LB público Posición en LB público
Media simple 9.986 9.409 1449 / 1500
Media por grupo 9.978 9.407 1411 / 1500
Gradient Boosting 5.996 4.595 1109 / 1500
Añadir variable hora 5.553 4.352 1068 / 1500
Añadir variable distancia 5.268 4.103 1006 / 1500
... ... ... ...
Cómo ganar una competición de Kaggle con Python

Iteraciones

Modelo RMSE de validación RMSE del LB público Posición en LB público
Media simple 9.986 9.409 1449 / 1500
Media por grupo 9.978
Gradient Boosting 5.996 4.595 1109 / 1500
Añadir variable hora 5.553
Añadir variable distancia 5.268 4.103 1006 / 1500
... ... ... ...
Cómo ganar una competición de Kaggle con Python

Optimización de hiperparámetros

 

Tipo de competición Ingeniería de variables Optimización de hiperparámetros
ML clásico +++ +
Deep Learning - +++
Cómo ganar una competición de Kaggle con Python

Regresión ridge

 

Regresión lineal por mínimos cuadrados

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

Cómo ganar una competición de Kaggle con Python

Regresión ridge

 

Regresión lineal por mínimos cuadrados

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2} \to \min$$

Regresión ridge

$$Loss = \sum_{i=1}^{N}{(y_i - \hat{y}_i)^2 + \alpha\sum_{j=1}^{K}{{w_j}^2}} \to \min$$

Cómo ganar una competición de Kaggle con Python

Estrategias de optimización de hiperparámetros

 

  • Búsqueda en cuadrícula. Elige una cuadrícula de valores de hiperparámetros
  • Búsqueda aleatoria. Define el espacio de búsqueda de hiperparámetros
  • Optimización bayesiana. Define el espacio de búsqueda de hiperparámetros

esquema de búsqueda en cuadrícula

esquema de búsqueda aleatoria

Cómo ganar una competición de Kaggle con Python

Búsqueda en cuadrícula

# Possible alpha values
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # For each value in the grid for candidate_alpha in alpha_grid:
# Create a model with a specific alpha value ridge_regression = Ridge(alpha=candidate_alpha)
# Find the validation score for this model
# Save the results for each alpha value results[candidate_alpha] = validation_score
Cómo ganar una competición de Kaggle con Python

¡Vamos a practicar!

Cómo ganar una competición de Kaggle con Python

Preparing Video For Download...