Menu

Category

Archive

logo


ナイーブベイズフィルタ (Naive Bayes classifier)

2014-03-30 16:54:00 +0900
  • このエントリーをはてなブックマークに追加

ナイーブベイジアンフィルタとは、Naive Bayes というアルゴリズムを使用して、カテゴリやスパムメールの振り分けを行うとてもシンプルなフィルタです。強い独立性を仮定して処理するので、"ナイーブ"と言われます。*1 事前にコンピューターに手動で学習させておく(訓練フェーズ)ので、Supervied Leaning と呼ばれる機械学習の手法の一つ。

ナイーブベイズフィルタ

ナイーブベイズでは、カテゴリを推定します。ある文章が与えられた時に、その文章がどのカテゴリに属するのが「もっともらしい」のかを求める。

アルゴリズムには、訓練フェーズをえて、3つの情報を保持します。

1 . カテゴリに各単語が分類された回数

1 {
2      "Python": {
3           "Python": 2,
4           "パイソン": 1},
5       "Ruby": {
6           "Ruby": 1,
7           "ルビー": 1}
8 }

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