การประเมินโมเดล

การพยากรณ์ CTR ด้วย Machine Learning ใน Python

Kevin Huo

Instructor

Precision และ Recall

  • Precision: ROI จากค่าใช้จ่ายโฆษณาผ่านการคลิก

    • Precision ต่ำหมายถึง ROI จากการคลิกน้อยมาก
  • Recall: การเข้าถึงกลุ่มเป้าหมายที่เกี่ยวข้อง

    • Recall ต่ำหมายถึงพลาดโอกาสสร้าง ROI
  • อาจสมเหตุสมผลที่จะให้น้ำหนักต่างกัน

    • บริษัทมักให้ความสำคัญกับการหลีกเลี่ยง Precision ต่ำมากกว่า Recall ต่ำ
การพยากรณ์ CTR ด้วย Machine Learning ใน Python

F-beta score

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

  • Beta coefficient: แสดงถึงน้ำหนักสัมพัทธ์ของสองเมตริก

    • Beta ระหว่าง 0 ถึง 1 หมายความว่า precision ถูกลดลงจึงได้รับน้ำหนักมากขึ้น ส่วน beta > 1 หมายความว่า precision ถูกขยายขึ้นจึงได้รับน้ำหนักน้อยลง
  • สามารถใช้งานใน sklearn ผ่าน: fbeta_score(y_true, y_pred, beta=beta)

    • y_true คือค่าเป้าหมายจริง และ y_pred คือค่าเป้าหมายที่ทำนาย
การพยากรณ์ CTR ด้วย Machine Learning ใน Python

AUC ของ ROC curve เทียบกับ Precision

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

fpr = 1 - tn / (tn + fp)
precision = tp / (tp + fp)
  • ชุดข้อมูลไม่สมดุล: fpr อาจต่ำได้แม้ว่า precision จะต่ำเช่นกัน
  • สมมติว่ามี TN 100 ค่า, TP 10 ค่า และ FP 10 ค่า
fpr = 1 - 100 / (100 + 10) = 0.091
precision = tp / (tp + fp) = 0.5
  • FPR ต่ำอาจทำให้ AUC ของ ROC curve สูง แม้ว่า precision จะต่ำ ดังนั้นจึงควรพิจารณาทั้งสองเมตริกควบคู่กับ F-beta score
การพยากรณ์ CTR ด้วย Machine Learning ใน 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 ด้วย Machine Learning ใน Python

มาฝึกกันเถอะ!

การพยากรณ์ CTR ด้วย Machine Learning ใน Python

Preparing Video For Download...