Aan de slagGa gratis aan de slag

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

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)
Code bewerken en uitvoeren