Validation croisée pour les modèles de crédit

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Notions de base de la validation croisée

  • Sert à entraîner et tester le modèle comme s'il était appliqué à de nouvelles données
  • Segmente les données d'entraînement en parts pour estimer la performance future
  • Utilise DMatrix, une structure interne optimisée pour XGBoost
  • L'arrêt hâtif indique à la validation croisée d'arrêter quand la mesure de pointage n'a pas progressé après un certain nombre d'itérations
Modélisation du risque de crédit en Python

Fonctionnement de la validation croisée

  • Traite des parts des données d'entraînement (appelées plis) et teste sur la part non utilisée
  • Test final sur l'ensemble de test réel

Schéma de la validation croisée à k plis

1 https://scikit-learn.org/stable/modules/cross_validation.html
Modélisation du risque de crédit en Python

Configurer la validation croisée dans XGBoost

# Set the number of folds
n_folds = 2
# Set early stopping number
early_stop = 5
# Set any specific parameters for cross validation
params = {'objective': 'binary:logistic',
          'seed': 99, 'eval_metric':'auc'}
  • 'binary':'logistic' sert à préciser la classification pour loan_status
  • 'eval_metric':'auc' indique à XGBoost d'évaluer la performance du modèle avec l'AUC
Modélisation du risque de crédit en Python

Utiliser la validation croisée dans XGBoost

# Restructure the train data for xgboost
DTrain = xgb.DMatrix(X_train, label = y_train)
# Perform cross validation
xgb.cv(params, DTrain, num_boost_round = 5, nfold=n_folds,
       early_stopping_rounds=early_stop)
  • DMatrix() crée un objet spécial pour xgboost optimisé pour l'entraînement
Modélisation du risque de crédit en Python

Résultats de la validation croisée

  • Crée un cadre de données avec les valeurs issues de la validation croisée

Exemple de scores de validation croisée

Modélisation du risque de crédit en Python

Mesurer la validation croisée

  • Utilise la validation croisée et des mesures de pointage avec la fonction cross_val_score() de scikit-learn
# Import the module
from sklearn.model_selection import cross_val_score
# Create a gbt model
xg = xgb.XGBClassifier(learning_rate = 0.4, max_depth = 10)
# Use cross valudation and accuracy scores 5 consecutive times
cross_val_score(gbt, X_train, y_train, cv = 5)
array([0.92748092, 0.92575308, 0.93975392, 0.93378608, 0.93336163])
Modélisation du risque de crédit en Python

Passons à la pratique !

Modélisation du risque de crédit en Python

Preparing Video For Download...