Ajustement des hyperparamètres

Remporter une compétition Kaggle en Python

Yauhen Babakhin

Kaggle Grandmaster

Itérations

Modèle RMSE de validation RMSE du LB public Rang sur le LB public
Moyenne simple 9.986 9.409 1449 / 1500
Moyenne par groupe 9.978 9.407 1411 / 1500
Gradient Boosting 5.996 4.595 1109 / 1500
Ajout de la caractéristique heure 5.553 4.352 1068 / 1500
Ajout de la caractéristique distance 5.268 4.103 1006 / 1500
... ... ... ...
Remporter une compétition Kaggle en Python

Itérations

Modèle RMSE de validation RMSE du LB public Rang sur le LB public
Moyenne simple 9.986 9.409 1449 / 1500
Moyenne par groupe 9.978
Gradient Boosting 5.996 4.595 1109 / 1500
Ajout de la caractéristique heure 5.553
Ajout de la caractéristique distance 5.268 4.103 1006 / 1500
... ... ... ...
Remporter une compétition Kaggle en Python

Optimisation des hyperparamètres

 

Type de compétition Ingénierie des caractéristiques Optimisation des hyperparamètres
Machine Learning classique +++ +
Deep Learning - +++
Remporter une compétition Kaggle en Python

Régression Ridge

 

Régression linéaire aux moindres carrés

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

Remporter une compétition Kaggle en Python

Régression Ridge

 

Régression linéaire aux moindres carrés

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

Régression Ridge

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

Remporter une compétition Kaggle en Python

Stratégies d'optimisation des hyperparamètres

 

  • Recherche exhaustive (grid search). Choisir une grille prédéfinie de valeurs d'hyperparamètres
  • Recherche aléatoire. Définir l'espace de recherche des hyperparamètres
  • Optimisation bayésienne. Définir l'espace de recherche des hyperparamètres

schéma de recherche exhaustive

schéma de recherche aléatoire

Remporter une compétition Kaggle en Python

Recherche exhaustive (grid search)

# Valeurs possibles de alpha
alpha_grid = [0.01, 0.1, 1, 10]

from sklearn.linear_model import Ridge results = {} # Pour chaque valeur de la grille for candidate_alpha in alpha_grid:
# Créer un modèle avec une valeur précise de alpha ridge_regression = Ridge(alpha=candidate_alpha)
# Trouver le score de validation pour ce modèle
# Enregistrer les résultats pour chaque valeur de alpha results[candidate_alpha] = validation_score
Remporter une compétition Kaggle en Python

Passons à la pratique !

Remporter une compétition Kaggle en Python

Preparing Video For Download...