XGBoost के साथ Gradient boosted trees

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

Michael Crabtree

Data Scientist, Ford Motor Company

Decision trees

  • लॉजिस्टिक रिग्रेशन जैसी प्रेडिक्शन बनाता है
  • रिग्रेशन जैसा स्ट्रक्चर नहीं होता

डिसीजन ट्री का उदाहरण

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

Loan status के लिए decision trees

  • loan_status की डिफॉल्ट प्रॉबेबिलिटी के लिए एक साधारण डिसीजन ट्री

डिसीजन ट्री प्रेडिक्शन उदाहरण

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

Decision tree का प्रभाव

डिसीजन ट्री प्रेडिक्शन उदाहरण

Loan True loan status Pred. Loan Status Loan payoff value Selling Value Gain/Loss
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Python में क्रेडिट रिस्क मॉडलिंग

पेड़ों का जंगल

  • XGBoost बहुत से सरल ट्रीज़ (ensemble) उपयोग करता है
  • हर ट्री सिक्के की उछाल से थोड़ा बेहतर होगा

ट्री प्रेडिक्टर्स का एन्सेम्बल

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

ट्री बनाना और ट्रेन करना

  • xgboost Python पैकेज का हिस्सा, यहाँ xgb कहा गया है
  • .fit() से ट्रेन होता है, ठीक लॉजिस्टिक रिग्रेशन की तरह
# 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))
Python में क्रेडिट रिस्क मॉडलिंग

XGBoost के साथ डिफॉल्ट प्रेडिक्शन

  • .predict() और .predict_proba() दोनों से प्रेडिक्ट करता है
    • .predict_proba() 0 और 1 के बीच मान देता है
    • .predict() loan_status के लिए 1 या 0 देता है
# 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...])
Python में क्रेडिट रिस्क मॉडलिंग

Gradient boosted trees के हाइपरपैरामीटर्स

  • हाइपरपैरामीटर्स: मॉडल सेटिंग्स जो डेटा से नहीं सीखी जा सकतीं
  • Gradient boosted trees के कुछ सामान्य हाइपरपैरामीटर्स
    • learning_rate: छोटा मान हर स्टेप को अधिक conservative बनाता है
    • max_depth: हर ट्री की अधिकतम गहराई, बड़ा मतलब ज्यादा जटिल
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Python में क्रेडिट रिस्क मॉडलिंग

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

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

Preparing Video For Download...