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
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(____)