Arbres boosting de gradient avec XGBoost

Modélisation du risque de crédit en Python

Michael Crabtree

Data Scientist, Ford Motor Company

Arbres de décision

  • Produit des prédictions comme la régression logistique
  • N’est pas structuré comme une régression

Exemple d’arbre de décision

Modélisation du risque de crédit en Python

Arbres de décision pour l’état du prêt

  • Arbre simple pour prédire la probabilité de défaut loan_status

Exemple de prédiction par arbre de décision

Modélisation du risque de crédit en Python

Impact d’un arbre de décision

Exemple de prédiction par arbre de décision

Prêt État réel du prêt État prédit Valeur remboursement Valeur revente Gain/Perte
1 0 1 1 500 $ 250 $ -1 250 $
2 0 1 1 200 $ 250 $ -950 $
Modélisation du risque de crédit en Python

Une forêt d’arbres

  • XGBoost utilise de nombreux arbres simples (ensemble)
  • Chaque arbre fait un peu mieux qu’un pile ou face

Ensemble d’arbres prédicteurs

Modélisation du risque de crédit en Python

Création et entraînement des arbres

  • Fait partie du package Python xgboost, nommé ici xgb
  • S’entraîne avec .fit() comme le modèle de régression logistique
# Créer un modèle de régression logistique
clf_logistic = LogisticRegression()
# Entraîner la régression logistique
clf_logistic.fit(X_train, np.ravel(y_train))
# Créer un modèle d’arbres boosting de gradient
clf_gbt = xgb.XGBClassifier()
# Entraîner l’arbres boosting de gradient
clf_gbt.fit(X_train,np.ravel(y_train))
Modélisation du risque de crédit en Python

Prédictions de défaut avec XGBoost

  • Prédit avec .predict() et .predict_proba()
    • .predict_proba() renvoie une valeur entre 0 et 1
    • .predict() renvoie 1 ou 0 pour loan_status
# Prédire les probabilités de défaut
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# Prédire loan_status en 1 ou 0
gbt_preds = clf_gbt.predict(X_test)
# gbt_preds_prob
array([[0.059, 0.940], [0.121, 0.989]])
# gbt_preds
array([1, 1, 0...])
Modélisation du risque de crédit en Python

Hyperparamètres des arbres boosting de gradient

  • Hyperparamètres : paramètres du modèle (réglages) non appris depuis les données
  • Hyperparamètres courants pour les arbres boosting de gradient
    • learning_rate : plus petit → étapes plus prudentes
    • max_depth : profondeur max de chaque arbre, plus grand → plus complexe
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
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...