ベイズ式スパムフィルタ
前の演習、お疲れさまでした!次は有名なベイズの定理に取り組み、シンプルだけれど重要なタスクであるスパム検出に使ってみましょう。
受信トレイを眺めていると、時間をかけて読みたくないメールの多くに「BUY NOW!!!」のような感嘆文が含まれていることに気づきました。特に「!!!」のように感嘆符が3つ連続していると、スパムの良い予測子になりそうだと考えました。そこで、emails という DataFrame を用意しました。変数は2つで、spam はそのメールがスパムかどうか、contains_3_exlc は文字列 "!!!" を含むかどうかです。データの先頭は次のとおりです。
spam contains_3_excl
0 False False
1 False False
2 True False
3 False False
4 False False
あなたの課題は、「感嘆符が3つ含まれている」という条件のもとで、そのメールがスパムである確率を計算することです。段階的に取り組んでいきましょう。参考までにベイズの公式を示します。
$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$
この演習はコースの一部です
Pythonで学ぶBayesianデータ分析
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Calculate and print the unconditional probability of spam
p_spam = ____[____].____
print(____)