Modelbeoordeling

CTR voorspellen met Machine Learning in Python

Kevin Huo

Instructor

Precisie en recall

  • Precisie: ROI op advertentiebudget via kliks

    • Lage precisie betekent weinig tastbare ROI op kliks
  • Recall: relevante doelgroep bereiken

    • Lage recall betekent misgelopen ROI-kansen
  • Het kan zinvol zijn beide anders te wegen

    • Bedrijven geven vaak meer om het vermijden van lage precisie dan van lage recall
CTR voorspellen met Machine Learning in Python

F-bèta-score

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

  • Beta-coëfficiënt: geeft de relatieve weging van beide metrics weer

    • Beta tussen 0 en 1 verkleint precisie en weegt die dus zwaarder; beta > 1 vergroot precisie en weegt die dus lichter
  • Implementatie in sklearn via: fbeta_score(y_true, y_pred, beta)

    • y_true zijn de echte targets en y_pred de voorspelde targets
CTR voorspellen met Machine Learning in Python

AUC van ROC-curve versus precisie

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

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • Imbalanced dataset: fpr kan laag zijn terwijl precision ook laag is.
  • Stel: we hebben 100 TN, en 10 TP en 10 FP.
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • Lage FPR kan leiden tot hoge AUC van de ROC-curve, terwijl de precisie laag is! Bekijk daarom beide metrics, plus de F-beta score.
CTR voorspellen met Machine Learning in Python

ROI op advertentiebestedingen

  • Zelfde idee als eerder: een kostenpost c en opbrengst r
total_return = tp * r
total_spent = (tp + fp) * cost
roi = total_return / total_spent 
    = (tp) / (tp + fp) * (r / cost) 
    = precision * (r / cost)
CTR voorspellen met Machine Learning in Python

Laten we oefenen!

CTR voorspellen met Machine Learning in Python

Preparing Video For Download...