Gradient-Boosted Trees mit XGBoost

Kreditrisikomodellierung in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Entscheidungsbäume

  • Liefert Vorhersagen ähnlich wie logistische Regression
  • Ist keine Regression

Beispiel für einen Entscheidungsbaum

Kreditrisikomodellierung in Python

Entscheidungsbäume für den Loan-Status

  • Einfacher Entscheidungsbaum zur Vorhersage der loan_status-Ausfallwahrscheinlichkeit

Beispiel für eine Entscheidungsbaumvorhersage

Kreditrisikomodellierung in Python

Wirkung des Entscheidungsbaums

Beispiel für eine Entscheidungsbaumvorhersage

Kredit Wahrer Status Progn. Status Rückzahlungswert Verkaufswert Gewinn/Verlust
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Kreditrisikomodellierung in Python

Ein Wald von Bäumen

  • XGBoost nutzt viele einfache Bäume (Ensemble)
  • Jeder Baum ist nur leicht besser als Münzwurf

Ensemble von Beispiel-Baumprädiktoren

Kreditrisikomodellierung in Python

Bäume erstellen und trainieren

  • Teil des Python-Pakets xgboost, hier xgb
  • Trainiert mit .fit() wie das logistische Regressionsmodell
# Logistisches Regressionsmodell erstellen
clf_logistic = LogisticRegression()
# Logistische Regression trainieren
clf_logistic.fit(X_train, np.ravel(y_train))
# Gradient-Boosted-Tree-Modell erstellen
clf_gbt = xgb.XGBClassifier()
# Gradient-Boosted Tree trainieren
clf_gbt.fit(X_train,np.ravel(y_train))
Kreditrisikomodellierung in Python

Standardvorhersagen mit XGBoost

  • Sagt mit .predict() und .predict_proba() voraus
    • .predict_proba() liefert einen Wert zwischen 0 und 1
    • .predict() liefert 1 oder 0 für loan_status
# Wahrscheinlichkeiten für Zahlungsausfall vorhersagen
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# loan_status als 1 oder 0 vorhersagen
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...])
Kreditrisikomodellierung in Python

Hyperparameter von Gradient-Boosted Trees

  • Hyperparameter: Modelleinstellungen, die nicht aus Daten gelernt werden
  • Häufige Hyperparameter für Gradient-Boosted Trees
    • learning_rate: kleinere Werte machen jeden Schritt vorsichtiger
    • max_depth: maximale Tiefe je Baum, größer = komplexer
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Kreditrisikomodellierung in Python

Lass uns üben!

Kreditrisikomodellierung in Python

Preparing Video For Download...