Introduction à l'ajustement des hyperparamètres

Validation de modèles en Python

Kasey Jones

Data Scientist

Paramètres du modèle

Les paramètres sont :

  • Appris ou estimés à partir des données
  • Résultent de l'ajustement d'un modèle
  • Utilisés pour de futures prédictions
  • Non définis manuellement
Validation de modèles en Python

Paramètres de la régression linéaire

Les paramètres sont créés lors de l'ajustement d'un modèle :

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Validation de modèles en Python

Paramètres de la régression linéaire

Les paramètres n'existent pas avant l'ajustement du modèle :

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Validation de modèles en Python

Hyperparamètres du modèle

Hyperparamètres :

  • Définis manuellement avant l'entraînement
  • Précisent comment l'entraînement doit se dérouler
Validation de modèles en Python

Hyperparamètres de la forêt aléatoire

Hyperparamètre Description Valeurs possibles (par défaut)
n_estimators Nombre d'arbres de décision dans la forêt 2+ (10)
max_depth Profondeur maximale des arbres de décision 2+ (None)
max_features Nombre de variables considérées pour une séparation Voir la documentation
min_samples_split Nombre minimal d'exemples requis pour une séparation 2+ (2)
Validation de modèles en Python

Qu'est-ce que l'ajustement des hyperparamètres ?

Ajustement des hyperparamètres :

  • Sélectionner des hyperparamètres
  • Exécuter un seul type de modèle avec différents ensembles de valeurs
  • Définir des plages de valeurs possibles
  • Spécifier un seul indicateur de justesse
Validation de modèles en Python

Définir des plages

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Spécifier les hyperparamètres rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
Validation de modèles en Python

Trop d'hyperparamètres !

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
Validation de modèles en Python

Principes généraux

  • Commencer par l'essentiel
  • Lire la documentation
  • Tester des plages pratiques
Validation de modèles en Python

Passons à la pratique !

Validation de modèles en Python

Preparing Video For Download...