Filtre antispam bayésien
Bravo pour l’exercice précédent ! Passons maintenant au célèbre théorème de Bayes et appliquons-le à une tâche simple mais essentielle : la détection de spam.
En parcourant votre boîte de réception, vous avez remarqué que bon nombre des e-mails que vous préféreriez ne pas lire contiennent des phrases exclamatives, comme « BUY NOW!!! ». Vous vous dites alors que la présence de trois points d’exclamation consécutifs pourrait être un bon indicateur de spam. Vous avez donc préparé un DataFrame nommé emails avec deux variables : spam, indiquant si l’e-mail est un spam, et contains_3_exlc, indiquant s’il contient la chaîne « !!! ». Le début des données ressemble à ceci :
spam contains_3_excl
0 False False
1 False False
2 True False
3 False False
4 False False
Votre objectif est de calculer la probabilité qu’un e-mail soit un spam sachant qu’il contient trois points d’exclamation. Procédons étape par étape ! Voici la formule de Bayes pour rappel :
$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$
Cet exercice fait partie du cours
Analyse de données bayésienne en Python
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)