ตัวกรองสแปมแบบ Bayesian
ยอดเยี่ยมมากสำหรับแบบฝึกหัดที่ผ่านมา! คราวนี้มาลองใช้ทฤษฎีบทของ Bayes กับงานที่เรียบง่ายแต่สำคัญมาก นั่นคือ การตรวจจับสแปม
ขณะที่ดูกล่องจดหมาย คุณสังเกตว่าอีเมลที่ไม่อยากเสียเวลาอ่านมักมีประโยคอุทาน เช่น "BUY NOW!!!" คุณจึงคิดว่าการมีเครื่องหมายอัศเจรีย์สามตัวติดกันอาจเป็นตัวบ่งชี้สแปมที่ดีได้! จึงได้เตรียม DataFrame ชื่อ emails ที่มีตัวแปรสองตัว ได้แก่ spam (อีเมลนั้นเป็นสแปมหรือไม่) และ contains_3_exlc (อีเมลนั้นมีสตริง "!!!" หรือไม่) ตัวอย่างข้อมูลแสดงดังนี้:
spam contains_3_excl
0 False False
1 False False
2 True False
3 False False
4 False False
โจทย์คือให้คำนวณความน่าจะเป็นที่อีเมลจะเป็นสแปม โดยมีเงื่อนไขว่ามีเครื่องหมายอัศเจรีย์สามตัว มาแก้ปัญหาทีละขั้นกัน! สูตรของ Bayes สำหรับใช้อ้างอิง:
$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)