Alberi potenziati (XGBoost)

Credit Risk Modeling in Python

Michael Crabtree

Data Scientist, Ford Motor Company

Alberi decisionali

  • Crea previsioni simili alla regressione logistica
  • Non è strutturato come una regressione

Esempio di albero decisionale

Credit Risk Modeling in Python

Alberi decisionali per loan status

  • Albero decisionale semplice per prevedere la probabilità di default di loan_status

Esempio di previsione con albero decisionale

Credit Risk Modeling in Python

Impatto dell’albero decisionale

Esempio di previsione con albero decisionale

Prestito Loan status reale Loan status pred. Valore rimborso Valore di vendita Guadagno/Perdita
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Credit Risk Modeling in Python

Una foresta di alberi

  • XGBoost usa molti alberi semplici (ensemble)
  • Ogni albero è leggermente meglio del lancio di una moneta

Insieme di alberi predittori

Credit Risk Modeling in Python

Creare e addestrare gli alberi

  • Fa parte del pacchetto Python xgboost, qui chiamato xgb
  • Si allena con .fit() come la regressione logistica
# Crea un modello di regressione logistica
clf_logistic = LogisticRegression()
# Allena la regressione logistica
clf_logistic.fit(X_train, np.ravel(y_train))
# Crea un modello di alberi potenziati
glf_gbt = xgb.XGBClassifier()
# Allena l'albero potenziato
clf_gbt.fit(X_train,np.ravel(y_train))
Credit Risk Modeling in Python

Previsioni di default con XGBoost

  • Prevede con .predict() e .predict_proba()
    • .predict_proba() restituisce un valore tra 0 e 1
    • .predict() restituisce 1 o 0 per loan_status
# Predici probabilità di default
gbt_preds_prob = clf_gbt.predict_proba(X_test)
# Predici loan_status come 1 o 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...])
Credit Risk Modeling in Python

Iperparametri degli alberi potenziati

  • Iperparametri: impostazioni del modello che non si apprendono dai dati
  • Iperparametri comuni per gli alberi potenziati
    • learning_rate: valori più piccoli rendono ogni passo più conservativo
    • max_depth: profondità massima di ogni albero; più grande = più complesso
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Credit Risk Modeling in Python

Passons à la pratique !

Credit Risk Modeling in Python

Preparing Video For Download...