2013年7月25日

spamかhamか 〜Bayesの定理〜

今週月曜に、友人と食事(というか軽い飲み会)をしていて、
ベイズ(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学科他の学科小計
男子44650
女子14950
小計595100

$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か」ということですね♪
その具体的なメカニズムはこれから勉強します(大汗)

まずは方向性を確認、ていうことで。