베이지안 스팸 필터
이전 연습 문제도 잘 하셨어요! 이제 유명한 베이즈 정리를 직접 적용해 간단하지만 중요한 작업인 스팸 감지를 해 보겠습니다.
받은편지함을 살펴보니, 읽을 가치가 별로 없는 이메일에는 "BUY NOW!!!"처럼 감탄문이 자주 포함되어 있음을 알게 되었어요. 연속된 느낌표 세 개가 스팸을 예측하는 데 유용할 수 있겠다고 생각했죠! 그래서 emails라는 DataFrame을 준비했습니다. 여기에는 두 변수가 있어요: 이메일이 스팸인지 여부를 나타내는 spam, 그리고 문자열 "!!!"가 포함되어 있는지를 나타내는 contains_3_exlc입니다. 데이터의 head는 다음과 같습니다:
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으로 배우는 Bayesian 데이터 분석
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)