Оцінювання моделі

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

Kevin Huo

Instructor

Precision і recall

  • Precision: ROI від витрат на рекламу через кліки

    • Низька precision означає мінімальний відчутний ROI від кліків
  • Recall: таргетинг релевантної аудиторії

    • Низький recall означає втрачені можливості для ROI
  • Може бути доцільно по-різному зважувати ці дві метрики

    • Бізнес зазвичай більше турбується про уникнення низької precision, ніж низького recall
Прогнозування CTR за допомогою машинного навчання в Python

F-beta score

$$F_\beta = (1+\beta^2)\cdot\frac{\text{precision}\cdot\text{recall}}{(\beta^2 \cdot \text{precision}) + \text{recall}}$$

  • Коефіцієнт beta: показує відносну вагу двох метрик

    • Beta між 0 і 1 зменшує precision, тож її зважують більше; beta > 1 збільшує precision, тож її зважують менше
  • Реалізація в sklearn: fbeta_score(y_true, y_pred, beta=beta)

    • y_true — істинні цільові значення, y_pred — передбачені
Прогнозування CTR за допомогою машинного навчання в Python

AUC ROC-кривої проти precision

roc_auc = roc_auc_score(y_test, y_score[:, 1])

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • Незбалансований набір даних: fpr може бути низьким, коли precision теж низька.
  • Припустімо, маємо 100 TN, і 10 TP та 10 FP.
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • Низький FPR може дати високий AUC ROC-кривої, попри низьку precision! Тому важливо дивитися на обидві метрики разом із F-beta score.
Прогнозування CTR за допомогою машинного навчання в Python

ROI рекламних витрат

  • Та сама ідея: деяка вартість c і дохід r
total_return = tp * r
total_spent = (tp + fp) * cost
roi = total_return / total_spent 
    = (tp) / (tp + fp) * (r / cost) 
    = precision * (r / cost)
Прогнозування CTR за допомогою машинного навчання в Python

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

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

Preparing Video For Download...