ナイーブベイジアンフィルタとは、Naive Bayes というアルゴリズムを使用して、カテゴリやスパムメールの振り分けを行うとてもシンプルなフィルタです。強い独立性を仮定して処理するので、”ナイーブ”と言われます。*1 事前にコンピューターに手動で学習させておく(訓練フェーズ)ので、Supervied Leaning と呼ばれる機械学習の手法の一つ。
ナイーブベイズフィルタ
ナイーブベイズでは、カテゴリを推定します。ある文章が与えられた時に、その文章がどのカテゴリに属するのが「もっともらしい」のかを求める。
アルゴリズムには、訓練フェーズをえて、3つの情報を保持します。
1 . カテゴリに各単語が分類された回数
1 2 3 4 5 6 7 8 | { "Python": { "Python": 2, "パイソン": 1}, "Ruby": { "Ruby": 1, "ルビー": 1} } |
2 . カテゴリの登場回数
1 | {'Python': 1, 'Ruby': 1} |
3 . ユニークな単語の集合
1 | {"Python", "パイソン", "Ruby", "ルビー"} |
確率の乗法定理により、ある文章(doc)が与えられた時に、あるカテゴリ(cat)に属する確率は、
**P(cat doc) = P(doc cat)P(cat) / P(doc)**
P(doc) | 文章が生起する確率 = どのカテゴリでも同じ ∴ 分子のみ比較 |
P(cat) | カテゴリが生起する確率 = 訓練フェーズのおいてカテゴリが与えられた回数 / 訓練フェーズの総文章数 |
P(doc l cat) | あるカテゴリが与えられた時の文章の生起確率 *2 |