Деревья с градиентным бустингом в XGBoost

Моделирование кредитного риска на Python

Michael Crabtree

Data Scientist, Ford Motor Company

Деревья решений

  • Строит предсказания аналогично логистической регрессии
  • По структуре не является регрессией

Пример дерева решений

Моделирование кредитного риска на Python

Деревья решений для статуса кредита

  • Простое дерево решений для предсказания вероятности дефолта loan_status

Пример предсказания дерева решений

Моделирование кредитного риска на Python

Влияние дерева решений

Пример предсказания дерева решений

Кредит Реальный статус Предсказанный статус Стоимость погашения Цена продажи Прибыль/убыток
1 0 1 $1,500 $250 -$1,250
2 0 1 $1,200 $250 -$950
Моделирование кредитного риска на Python

Лес деревьев

  • XGBoost использует набор простых деревьев (ансамбль)
  • Каждое дерево немного лучше случайного угадывания

Ансамбль деревьев-предикторов

Моделирование кредитного риска на Python

Создание и обучение деревьев

  • Входит в пакет Python xgboost, здесь используется как 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() возвращает 1 или 0 для loan_status
# 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

Гиперпараметры деревьев с градиентным бустингом

  • Гиперпараметры — настройки модели, которые нельзя извлечь из данных
  • Основные гиперпараметры деревьев с градиентным бустингом:
    • learning_rate: меньшие значения делают каждый шаг более консервативным
    • max_depth: глубина каждого дерева; большее значение — сложнее модель
xgb.XGBClassifier(learning_rate = 0.2,
                  max_depth = 4)
Моделирование кредитного риска на Python

Давайте потренируемся!

Моделирование кредитного риска на Python

Preparing Video For Download...