迷惑メールの判定で有名な「ナイーブベイズフィルタ」を簡単に紹介

科学・テクノロジー

 前回、「理由不十分の原則」と「ベイズ更新」を紹介しましたが、今回は迷惑メールを判定するための仕組みのひとつである「ナイーブベイズフィルタ」について紹介します。

 とても簡単に迷惑メールが判定できる有名な仕組みなので、ぜひ覚えておきましょう。




スポンサーリンク

 「ナイーブベイズフィルタ」とは?

 「ナイーブベイズフィルタ」とは、ベイズフィルタのなかでも最も単純な方法で、迷惑メールの判定をする場合は、言葉の相関を無視するものになります。

 では、早速次の例題を解いてみましょう。

迷惑メールか通常メールか調べるために、3つの単語「アイドル」「無料」「科学」に着目することにします。このとき、それぞれの迷惑メールと通常メールの確率は、「アイドル:0.75, 0.125」「無料:0.7, 0.2」「科学:0.2, 0.5」でした。そして、あるメールを調べたところ、「アイドル」「無料」「科学」の順番で単語が検索されました。このメールは迷惑メールか通常メールのどちらに分類すべきでしょうか?ただし、迷惑メールと通常メールの割合は6:4とします。

 これまでと同様に、データDを3つの単語「アイドル」「無料」「科学」として、仮定Hを「迷惑メール」と「通常メール」としてベイズ定理を適応しましょう。

 まずは1つ目の単語「アイドル」についてベイズ定理で書き出すと、

$$\mbox{「アイドル」が検出されたときに迷惑メールである確率}\\
= \frac{\mbox{迷惑メールに「アイドル」が含まれる確率} × \mbox{迷惑メールである確率}}{\mbox{「アイドル」が検出された確率}}$$

$$\mbox{「アイドル」が検出されたときに通常メールである確率}\\
= \frac{\mbox{通常メールに「アイドル」が含まれる確率} × \mbox{通常メールである確率}}{\mbox{「アイドル」が検出された確率}}$$

 になりますよね。この2つの式は分母が同じなので比較するときは無視できます。迷惑メールと通常メールの割合6:4を代入して式を書き直すと、

$$\mbox{「アイドル」が検出されたときに迷惑メールである確率}\\
\propto \mbox{迷惑メールに「アイドル」が含まれる確率} × 0.6$$

$$\mbox{「アイドル」が検出されたときに通常メールである確率}\\
\propto \mbox{通常メールに「アイドル」が含まれる確率} × 0.4$$

 さらに、2つ目の単語「無料」は1つ目の結果を「迷惑メールである確率」「通常メールである確率」に代入して計算するので、

$$\mbox{「無料」が検出されたときに迷惑メールである確率}\\
\propto \mbox{迷惑メールに「無料」が含まれる確率} × \mbox{迷惑メールである確率}\\
= \mbox{迷惑メールに「無料」が含まれる確率} × \\
 \mbox{ 迷惑メールに「アイドル」が含まれる確率} × 0.6$$

$$\mbox{「無料」が検出されたときに通常メールである確率}\\
\propto \mbox{通常メールに「無料」が含まれる確率} × \mbox{通常メールである確率}\\
= \mbox{通常メールに「無料」が含まれる確率} × \\
 \mbox{ 通常メールに「アイドル」が含まれる確率} × 0.4$$

 同じように、3つ目の単語「科学」は2つ目の結果を「迷惑メールである確率」「通常メールである確率」に代入して計算するので、

$$\mbox{「科学」が検出されたときに迷惑メールである確率}\\
\propto \mbox{迷惑メールに「科学」が含まれる確率} × \\
 \mbox{ 迷惑メールに「無料」が含まれる確率} × \\
 \mbox{ 迷惑メールに「アイドル」が含まれる確率} × 0.6$$

$$\mbox{「科学」が検出されたときに通常メールである確率}\\
\propto \mbox{通常メールに「科学」が含まれる確率} × \\
 \mbox{ 通常メールに「無料」が含まれる確率} × \\
 \mbox{ 通常メールに「アイドル」が含まれる確率} × 0.4$$

 あとは、実際の値を代入して計算すると、

$$\mbox{「アイドル」「無料」「科学」が検出されたときに迷惑メールである確率}\\
\propto 0.2 \times 0.7 \times 0.75 \times 0.6 = 0.063$$

$$\mbox{「アイドル」「無料」「科学」が検出されたときに通常メールである確率}\\
\propto 0.5 \times 0.2 \times 0.125 \times 0.4 = 0.005$$

 となり、迷惑メールに分類すべきだとわかりました。

スポンサーリンク

 最後に

 今回は、迷惑メールを判定するための仕組みのひとつである「ナイーブベイズフィルタ」について紹介してきました。

 とても簡単に迷惑メールが判定できる有名な仕組みなので、ぜひ覚えておきましょう。

コメント

タイトルとURLをコピーしました