模型評估

用 Python 透過機器學習預測 CTR

Kevin Huo

Instructor

Precision 與 Recall

  • Precision:以點擊帶來的廣告投資報酬率(ROI)

    • 低 precision 代表點擊帶來的實質 ROI 很少
  • Recall:鎖定相關受眾

    • 低 recall 代表錯失可創造 ROI 的機會
  • 兩者可視情況給不同權重

    • 企業通常更在意避免低 precision,而非低 recall
用 Python 透過機器學習預測 CTR

F-beta 分數

$$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 是預測標籤
用 Python 透過機器學習預測 CTR

ROC AUC 與 precision 的對比

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

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • 類別不平衡資料集:當 precision 很低時,fpr 仍可能很低。
  • 假設有 100 個 TN,以及 10 個 TP 與 10 個 FP。
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • 低 FPR 可能導致 ROC 曲線的 AUC 偏高,即使 precision 很低!因此需要同時檢視兩者,並搭配 F-beta score
用 Python 透過機器學習預測 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 透過機器學習預測 CTR

一起來練習吧!

用 Python 透過機器學習預測 CTR

Preparing Video For Download...