Оценка модели

Прогнозирование CTR с помощью машинного обучения на Python

Kevin Huo

Instructor

Точность и полнота

  • Точность: ROI на рекламные расходы через клики

    • Низкая точность означает минимальный реальный ROI на клики
  • Полнота: охват целевой аудитории

    • Низкая полнота означает упущенные возможности для ROI
  • Имеет смысл взвешивать эти две метрики по-разному

    • Компании, как правило, больше озабочены низкой точностью, чем низкой полнотой
Прогнозирование CTR с помощью машинного обучения на Python

F-бета

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

  • Коэффициент бета: задаёт относительный вес двух метрик

    • Бета от 0 до 1 уменьшает значение точности и тем самым увеличивает её вес; бета > 1 увеличивает значение точности и снижает её вес
  • Реализация в sklearn: fbeta_score(y_true, y_pred, beta=beta)

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

AUC ROC-кривой против точности

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-кривой даже при низкой точности! Поэтому важно анализировать обе метрики вместе с 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...