เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ตัวกรองสแปมแบบ 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(____)
แก้ไขและรันโค้ด