क्रेडिट मॉडलों के लिए क्रॉस वेलिडेशन

Python में क्रेडिट रिस्क मॉडलिंग

Michael Crabtree

Data Scientist, Ford Motor Company

क्रॉस वेलिडेशन बेसिक्स

  • मॉडल को इस तरह train और test करने के लिए, जैसे नए डेटा पर उपयोग करेंगे
  • भविष्य का प्रदर्शन आँकने के लिए training डेटा को हिस्सों में बाँटता है
  • XGBoost के लिए ऑप्टिमाइज़्ड आंतरिक स्ट्रक्चर DMatrix का उपयोग करता है
  • Early stopping स्कोर बेहतर न होने पर कुछ iterations बाद क्रॉस वेलिडेशन रोक देता है
Python में क्रेडिट रिस्क मॉडलिंग

क्रॉस वेलिडेशन कैसे काम करता है

  • training डेटा के हिस्सों (folds) को प्रोसेस करता है और बचे हिस्से पर test करता है
  • अंत में वास्तविक test सेट पर अंतिम परीक्षण

k-folds क्रॉस वेलिडेशन का डायग्राम

1 https://scikit-learn.org/stable/modules/cross_validation.html
Python में क्रेडिट रिस्क मॉडलिंग

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'}
  • loan_status के लिए classification बताने को 'binary':'logistic' उपयोग होता है
  • 'eval_metric':'auc' XGBoost को AUC पर मॉडल स्कोर करने को कहता है
Python में क्रेडिट रिस्क मॉडलिंग

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() training के लिए ऑप्टिमाइज़्ड xgboost का एक विशेष ऑब्जेक्ट बनाता है
Python में क्रेडिट रिस्क मॉडलिंग

क्रॉस वेलिडेशन के परिणाम

  • क्रॉस वेलिडेशन से प्राप्त मानों का एक data frame बनता है

क्रॉस वेलिडेशन स्कोर का उदाहरण

Python में क्रेडिट रिस्क मॉडलिंग

क्रॉस वेलिडेशन स्कोरिंग

  • scikit-learn के cross_val_score() फंक्शन से क्रॉस वेलिडेशन और स्कोरिंग मेट्रिक्स उपयोग करें
# 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 में क्रेडिट रिस्क मॉडलिंग

अभ्यास करते हैं!

Python में क्रेडिट रिस्क मॉडलिंग

Preparing Video For Download...