CommencerCommencer gratuitement

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

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)
Modifier et exécuter le code