Zacznij terazZacznij za darmo

Bayesowski filtr spamu

Świetna robota w poprzednim ćwiczeniu! Teraz zajmiemy się słynnym twierdzeniem Bayesa i zastosujemy je do prostego, ale ważnego zadania: wykrywania spamu.

Przeglądając skrzynkę odbiorczą, zauważysz, że wiele e-maili, których wolisz nie czytać, zawiera wykrzyknikowe zwroty, takie jak „KUP TERAZ!!!". Przychodzi ci do głowy, że obecność trzech wykrzykników z rzędu może być dobrym predyktorem spamu! W związku z tym przygotowano ramkę danych emails z dwiema zmiennymi: spam – czy e-mail był spamem, oraz contains_3_exlc – czy zawiera ciąg „!!!". Pierwsze wiersze danych wyglądają tak:

     spam    contains_3_excl
0    False             False
1    False             False
2    True              False
3    False             False
4    False             False

Twoim zadaniem jest obliczenie prawdopodobieństwa, że e-mail jest spamem, jeśli zawiera trzy wykrzykniki. Rozwiążemy to krok po kroku! Oto wzór Bayesa do wglądu:

$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$

To ćwiczenie jest częścią kursu

Bayesowska analiza danych w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)
Edytuj i uruchom kod