Avaliação de modelos

Prevendo CTR com Machine Learning em Python

Kevin Huo

Instructor

Precisão e revocação

  • Precisão: ROI do gasto com anúncios via cliques

    • Baixa precisão = pouco ROI tangível por cliques
  • Revocação: atingir o público certo

    • Baixa revocação = perder oportunidades de ROI
  • Pode fazer sentido ponderar as duas de forma diferente

    • Empresas tendem a evitar baixa precisão mais do que baixa revocação
Prevendo CTR com Machine Learning em Python

Pontuação F-beta

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

  • Coeficiente beta: pondera as duas métricas

    • Beta entre 0 e 1 reduz recall e dá mais peso à precisão; beta > 1 aumenta recall e dá menos peso à precisão
  • Implementação no sklearn: fbeta_score(y_true, y_pred, beta=beta)

    • y_true = alvos verdadeiros; y_pred = alvos previstos
Prevendo CTR com Machine Learning em Python

AUC da ROC vs. precisão

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

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • Dataset desbalanceado: fpr pode ser baixo quando a precision também é baixa.
  • Suponha 100 TN, 10 TP e 10 FP.
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • FPR baixo pode gerar AUC alta na curva ROC, mesmo com precisão baixa! Então, veja ambas as métricas e também o F-beta score.
Prevendo CTR com Machine Learning em Python

ROI em anúncios

  • Mesma ideia de antes: algum custo c e retorno r
total_return = tp * r
total_spent = (tp + fp) * cost
roi = total_return / total_spent 
    = (tp) / (tp + fp) * (r / cost) 
    = precision * (r / cost)
Prevendo CTR com Machine Learning em Python

Vamos praticar!

Prevendo CTR com Machine Learning em Python

Preparing Video For Download...