Kredi modelleri için çapraz doğrulama

Python ile Kredi Riski Modellemesi

Michael Crabtree

Data Scientist, Ford Motor Company

Çapraz doğrulama temelleri

  • Modeli, yeni veride kullanımını taklit edecek şekilde eğitmek ve test etmek için kullanılır
  • Gelecek performansı tahmin etmek için eğitim verisini parçalara böler
  • XGBoost için optimize edilmiş dahili yapı DMatrix kullanır
  • Erken durdurma, metrik belirli iterasyonlar boyunca iyileşmediğinde süreci bitirir
Python ile Kredi Riski Modellemesi

Çapraz doğrulama nasıl çalışır

  • Eğitim verisinin parçalarını (fold) işler ve kalan kısımda test eder
  • Son test, gerçek test kümesine karşı yapılır

k-katlı çapraz doğrulama diyagramı

1 https://scikit-learn.org/stable/modules/cross_validation.html
Python ile Kredi Riski Modellemesi

XGBoost içinde çapraz doğrulama kurulumu

# 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, loan_status için sınıflandırmayı belirtir
  • 'eval_metric':'auc', XGBoost'un performansı AUC ile puanlamasını söyler
Python ile Kredi Riski Modellemesi

XGBoost içinde çapraz doğrulama kullanımı

# 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(), eğitime optimize edilmiş, xgboost için özel bir nesne oluşturur
Python ile Kredi Riski Modellemesi

Çapraz doğrulama sonuçları

  • Çapraz doğrulamadan gelen değerlerle bir veri çerçevesi oluşturur

Çapraz doğrulama puanları örneği

Python ile Kredi Riski Modellemesi

Çapraz doğrulama puanlama

  • scikit-learn'deki cross_val_score() ile çapraz doğrulama ve puanlama metriklerini kullanır
# 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])
Python ile Kredi Riski Modellemesi

Hadi pratik yapalım!

Python ile Kredi Riski Modellemesi

Preparing Video For Download...