Байесовский спам-фильтр
Отличная работа в предыдущем упражнении! Теперь давайте обратимся к знаменитой теореме Байеса и применим её для решения простой, но важной задачи: определения спама.
Просматривая входящие письма, вы заметили, что многие нежелательные сообщения содержат восклицательные фразы вроде «КУПИТЕ СЕЙЧАС!!!». Вы предположили, что наличие трёх восклицательных знаков подряд может служить хорошим признаком спама! Для этого вы подготовили DataFrame под названием emails с двумя переменными: spam — является ли письмо спамом, и contains_3_exlc — содержит ли оно строку «!!!». Первые строки данных выглядят так:
spam contains_3_excl
0 False False
1 False False
2 True False
3 False False
4 False False
Ваша задача — вычислить вероятность того, что письмо является спамом, при условии, что оно содержит три восклицательных знака. Решим её пошагово! Для справки приведена формула Байеса:
$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$
Это упражнение является частью курса
Байесовский анализ данных на Python
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)