今週月曜に、友人と食事(というか軽い飲み会)をしていて、
ベイズ(Bayes)の定理と、spam filterってどう関係するんですか?
という質問を受けて即答出来なかったんですね。で、ちょっとねちっこく覚えていて何となく理解できたのでメモ。
キーワードは「条件付き確率」ですね。まずはベイズの定理を復習です:
$P(B|A)=\frac{ P(A\cap B) }{ P(A) }=\frac{ P(B)\times P(A|B) }{ P(A) }$
証明は、ほぼ条件付き確率の定義ですね。数値例で考えてみましょう(例自体は最近読んだ本から抽出です)
事象A: Computer Science学科に所属している
事象B: 女子である
としましょう。そのとき、
$P(A)$: 学生がCS学科所属である確率
$P(B)$: 学生が女子である確率
$P(B|A)$: CS学科である学生を1人選んだとき、その学生が女子である確率
$P(A|B)$: 学生が女子であるとき、彼女がCS学科所属である確率
抽象的な話になる前に、具体的な数値で考えてみましょぅ:
| CS学科 | 他の学科 | 小計 |
男子 | 4 | 46 | 50 |
女子 | 1 | 49 | 50 |
小計 | 5 | 95 | 100 |
$P(A)=\frac{5}{100}=\frac{1}{20}, P(B)=\frac{50}{100}=\frac{1}{2}$
$P(A|B)=\frac{1}{50}, P(B|A)=\frac{1}{5}$
で、ベイズの定理の右辺を計算してみましょうか:
$\frac{ P(B)\times P(A|B) }{ P(A) }=\frac{\frac{1}{2}\times \frac{1}{50}}{\frac{1}{20}}=\frac{20}{100}=\frac{1}{5}=P(B|A)$
で、意味を考えれば、「ある学生がCS学科に所属しているという情報が分かったら、全体で50%いるはずの女子が20%まで確率が下がる」というイメージですね(大汗)
事前に得られる情報によって、本来必要な情報の確率がガラッと変わるということですね〜。
読んでいた本の例では、「受信メールに特定の特徴(キーワードなど)がある場合、そのメールがspamメールである確率を推定」とありました。事前事象が「特定の特徴」、求めたい事象は「spamかhamか」ということですね♪
その具体的なメカニズムはこれから勉強します(大汗)
まずは方向性を確認、ていうことで。