Arbori gradient boosted cu XGBoost

Modelarea Riscului de Credit în Python

Michael Crabtree

Data Scientist, Ford Motor Company

Arbori de decizie

  • Generează predicții similare regresiei logistice
  • Nu este structurat ca o regresie

Exemplu de arbore de decizie

Modelarea Riscului de Credit în Python

Arbori de decizie pentru statutul creditului

  • Arbore de decizie simplu pentru predicția probabilității de nerambursare loan_status

Exemplu de predicție cu arbore de decizie

Modelarea Riscului de Credit în Python

Impactul arborelui de decizie

Exemplu de predicție cu arbore de decizie

Credit Statut real Statut prezis Valoare rambursare Valoare vânzare Câștig/Pierdere
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Modelarea Riscului de Credit în Python

O pădure de arbori

  • XGBoost folosește mulți arbori simpliști (ansamblu)
  • Fiecare arbore va fi ușor mai bun decât o alegere aleatorie

Ansamblu de arbori predicitori

Modelarea Riscului de Credit în Python

Crearea și antrenarea arborilor

  • Face parte din pachetul Python xgboost, numit aici xgb
  • Se antrenează cu .fit(), la fel ca modelul de regresie logistică
# 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))
Modelarea Riscului de Credit în Python

Predicții de nerambursare cu XGBoost

  • Generează predicții cu .predict() și .predict_proba()
    • .predict_proba() produce o valoare între 0 și 1
    • .predict() produce 1 sau 0 pentru 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...])
Modelarea Riscului de Credit în Python

Hiperparametrii arborilor gradient boosted

  • Hiperparametri: parametri ai modelului care nu pot fi învățați din date
  • Hiperparametri comuni pentru arbori gradient boosted
    • learning_rate: valori mai mici fac fiecare pas mai conservator
    • max_depth: adâncimea maximă a unui arbore; valori mai mari = mai complex
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Modelarea Riscului de Credit în Python

Să exersăm!

Modelarea Riscului de Credit în Python

Preparing Video For Download...