Arbres à gradient boosting 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 semblables à la régression logistique
  • N'est pas structuré comme une régression

Exemple d'un arbre de décision

Modélisation du risque de crédit en Python

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

  • Arbre de décision simple pour prévoir la probabilité de défaut de 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 Véritable état du prêt État du prêt prédit Valeur du remboursement Valeur de 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'exemples d'arbres prédicteurs

Modélisation du risque de crédit en Python

Créer et entraîner des arbres

  • Fait partie du paquet Python xgboost, nommé xgb ici
  • S'entraîne avec .fit() comme le modèle de régression logistique
# Create a logistic regression model
clf_logistic = LogisticRegression()
# Train the logistic regression
clf_logistic.fit(X_train, np.ravel(y_train))
# Create a gradient boosted tree model
clf_gbt = xgb.XGBClassifier()
# Train the gradient boosted tree
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() produit une valeur entre 0 et 1
    • .predict() produit 1 ou 0 pour loan_status
# Predict probabilities of default
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# Predict loan_status as a 1 or 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 à gradient boosting

  • Hyperparamètres : paramètres du modèle (réglages) non apprenables à partir des données
  • Hyperparamètres courants pour les arbres à gradient boosting
    • learning_rate : plus petit → pas plus prudent
    • max_depth : profondeur maximale 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...