모델 평가

Python으로 Machine Learning을 활용한 CTR 예측

Kevin Huo

Instructor

정밀도와 재현율

  • 정밀도: 클릭을 통한 광고비 ROI

    • 정밀도가 낮으면 클릭 대비 실질 ROI가 매우 적습니다
  • 재현율: 관련 타깃 도달

    • 재현율이 낮으면 ROI 기회를 놓칩니다
  • 두 지표의 가중을 다르게 두는 것이 합리적일 수 있습니다

    • 대개 기업은 재현율 저하보다 정밀도 저하를 더 피하려 합니다
Python으로 Machine Learning을 활용한 CTR 예측

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는 예측 타깃입니다
Python으로 Machine Learning을 활용한 CTR 예측

ROC AUC vs. 정밀도

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

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • 불균형 데이터셋: precision이 낮아도 fpr이 낮을 수 있습니다.
  • 예: TN 100, TP 10, FP 10.
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • 낮은 FPR은 정밀도가 낮아도 ROC AUC를 높일 수 있습니다. 따라서 두 지표와 F-beta score를 함께 보아야 합니다
Python으로 Machine Learning을 활용한 CTR 예측

광고비 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)
Python으로 Machine Learning을 활용한 CTR 예측

연습해 봅시다!

Python으로 Machine Learning을 활용한 CTR 예측

Preparing Video For Download...