Validarea încrucișată pentru modele de credit

Modelarea Riscului de Credit în Python

Michael Crabtree

Data Scientist, Ford Motor Company

Bazele validării încrucișate

  • Utilizată pentru antrenarea și testarea modelului, simulând utilizarea pe date noi
  • Împarte datele de antrenament în segmente pentru estimarea performanței viitoare
  • Folosește DMatrix, o structură internă optimizată pentru XGBoost
  • Early stopping oprește validarea încrucișată dacă metrica nu se îmbunătățește după un număr de iterații
Modelarea Riscului de Credit în Python

Cum funcționează validarea încrucișată

  • Procesează porțiuni din datele de antrenament (numite folduri) și testează pe porțiunea neutilizată
  • Testare finală pe setul de test efectiv

Diagramă a validării încrucișate k-folduri

1 https://scikit-learn.org/stable/modules/cross_validation.html
Modelarea Riscului de Credit în Python

Configurarea validării încrucișate în XGBoost

# Set the number of folds
n_folds = 2
# Set early stopping number
early_stop = 5
# Set any specific parameters for cross validation
params = {'objective': 'binary:logistic',
          'seed': 99, 'eval_metric':'auc'}
  • 'binary':'logistic' specifică clasificarea pentru loan_status
  • 'eval_metric':'auc' indică XGBoost să evalueze performanța modelului pe AUC
Modelarea Riscului de Credit în Python

Utilizarea validării încrucișate în XGBoost

# Restructure the train data for xgboost
DTrain = xgb.DMatrix(X_train, label = y_train)
# Perform cross validation
xgb.cv(params, DTrain, num_boost_round = 5, nfold=n_folds,
       early_stopping_rounds=early_stop)
  • DMatrix() creează un obiect special pentru xgboost, optimizat pentru antrenament
Modelarea Riscului de Credit în Python

Rezultatele validării încrucișate

  • Creează un data frame cu valorile din validarea încrucișată

Exemplu de scoruri din validarea încrucișată

Modelarea Riscului de Credit în Python

Scoruri din validarea încrucișată

  • Folosește validarea încrucișată și metrici de scoring cu funcția cross_val_score() din scikit-learn
# Import the module
from sklearn.model_selection import cross_val_score
# Create a gbt model
xg = xgb.XGBClassifier(learning_rate = 0.4, max_depth = 10)
# Use cross valudation and accuracy scores 5 consecutive times
cross_val_score(gbt, X_train, y_train, cv = 5)
array([0.92748092, 0.92575308, 0.93975392, 0.93378608, 0.93336163])
Modelarea Riscului de Credit în Python

Să exersăm!

Modelarea Riscului de Credit în Python

Preparing Video For Download...