Прогноз CTR за допомогою дерев рішень

Прогнозування CTR за допомогою машинного навчання в Python

Kevin Huo

Instructor

Дерева рішень

Приклад дерева рішень для схвалення кредитів за віком і статусом студента

  • Вузли — це ознаки
  • Гілки — це рішення на основі ознак
  • Приклади результатів у таблиці нижче:
  • Перший поділ — за віком заявника
  • Для молоді другий поділ — за статусом студента
  • Модель дає евристики для розуміння
is_student loan
middle_aged 1
youth no 0
youth yes 1
Прогнозування CTR за допомогою машинного навчання в Python

Навчання і тестування моделі

  • Створення: clf = DecisionTreeClassifier()
  • Подібно до логістичної регресії, дерево рішень також використовує clf.fit(X_train, y_train) для навчання і clf.predict(X_test) для міток тесту:

    array([0, 1, 1, ..., 1, 0, 1])
    
  • clf.predict_proba(X_test) — для ймовірностей:

    array([0.2, 0.8], [0.4, 0.6] ..., [0.1, 0.9] [0.3, 0.7]])
    
  • Приклад випадкового поділу на train/test, де тест — 30% вибірки: train_test_split(X, y, test_size = .3, random_state = 0)

Прогнозування CTR за допомогою машинного навчання в Python

Оцінювання за ROC-кривою

Приклад площі під ROC-кривою для класифікатора

  • True positive rate (вісь Y) = #(класифікатор прогнозує «позитив», фактично позитив) / #(позитиви)
  • False positive rate (вісь X) = #(класифікатор прогнозує «позитив», фактично негатив) / #(негативи)
  • Пунктирна синя лінія: базовий AUC 0,5
  • Прагнемо, щоб помаранчева лінія (AUC) була якнайближче до 1
Прогнозування CTR за допомогою машинного навчання в Python

AUC ROC-кривої

Y_score = clf.predict_proba(X_test)
fpr, tpr, thresholds = roc_curve(Y_test, Y_score[:, 1])
  • Вхідні дані roc_curve(): масиви тесту і скорів

roc_auc = auc(fpr, tpr)

  • Вхідні дані auc(): масиви false-positive і true-positive
  • Якщо модель точна, а CTR низький, варто переглянути подачу оголошення та цільову аудиторію

Прогнозування CTR за допомогою машинного навчання в Python

Давайте потренуємось!

Прогнозування CTR за допомогою машинного навчання в Python

Preparing Video For Download...