Bayesiaans spamfilter
Goed gedaan bij de vorige oefening! Laten we nu de beroemde stelling van Bayes aanpakken en gebruiken voor een simpele maar belangrijke taak: spamdetectie.
Tijdens het doorzoeken van je inbox merk je dat best wat e-mails die je liever overslaat uitroepende zinnen bevatten, zoals "BUY NOW!!!". Je denkt dat de aanwezigheid van drie uitroeptekens achter elkaar wel eens een goede voorspeller van spam kan zijn! Daarom heb je een DataFrame emails voorbereid met twee variabelen: spam (of de e-mail spam is) en contains_3_exlc (of hij de string "!!!" bevat). De kop van de data ziet er zo uit:
spam contains_3_excl
0 False False
1 False False
2 True False
3 False False
4 False False
Jouw taak is om de kans te berekenen dat een e-mail spam is, gegeven dat hij drie uitroeptekens bevat. Pak het stap voor stap aan! Hier is de formule van Bayes ter referentie:
$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$
Deze oefening maakt deel uit van de cursus
Bayesian Data Analysis in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)