Menu

Category

Archive

logo


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

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

ナイーブベイジアンフィルタとは、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