ナイーブベイズ(Naive Bayes)の特徴・考え方について
「ナイーブベイズ」の概要
- 機械学習の、教師あり学習に使われる手法。
- 自然言語の分類で主に利用される。(文章の分類やスパムメール判定など)
特徴
- 超シンプルな仮定に基づいて計算する割に、良い結果を返してくれる。
- トレーニングデータが少なくてもよい。
- 他の手法に比べて、計算が速い。
- 「次元の呪い」の影響を受けづらい。
- ナイーブベイズで計算される「確率」は、「その物事が起きる確率」としては使えない。(計算時にものごとを単純に仮定し過ぎているため)
計算方法
ベイズの定理
名前の通り、↓ベイズの定理を使う
P(B|A) = \frac{P(A|B) P(B)}{P(A)}
- $P(B|A)$:$A$が発生した状態で、$B$が発生する確率
- $P(A)$:(何も前提条件なしで)$A$が発生する確率
コレは、↓を変形したものと考えるとわかりやすいかも
P(A) × P(B|A) = P(B) × P(A|B)
- 両辺とも、$A, B$が両方とも発生する確率
- 「$A$が発生してから$B$が発生する」と考えるか、「$B$が発生してから$A$が発生する」と考えるか
ナイーブベイズの計算
ベイズの定理より
P(y | x_1, \cdots , x_n) = \frac{P(y) P(x_1, \cdots , x_n | y)}{P(x_1, \cdots , x_n)} \; \cdots (i)
- $y$:分類したいカテゴリ(「文章のカテゴリ」「スパムメールである、ではない」など)
- $x_1, \cdots , x_n$:↑の分類に使う要素。自然言語処理では、文に含まれる単語など
- $P(y | x_1, \cdots , x_n)$:$x_1, \cdots , x_n$が含まれる(or含まれない)とき、$y$である確率
- $P(y)$:全体のうち、$y$である確率。(=サンプル全部のうち、分類が$y$の割合)
となる。ここで、$x_1, \cdots , x_n$たちが互いの確率に影響を与えない(独立である)と仮定する
(ココの仮定がnaive=単純なので、「ナイーブベイズ」と呼ばれる)
このとき、「$x_i$以外が発生している(orしていない)とき、$x_i$が発生する(orしない)確率」
P(x_i | y, x_1, \cdots, x_{i-1} , x_{i+1} , \cdots , x_n)
は、他の$x$からの影響を受けないため
P(x_i | y, x_1, \cdots, x_{i-1} , x_{i+1} , \cdots , x_n) = P(x_i | y)
となるので、$(i)$の式は
\begin{align}
P(y | x_1, \cdots , x_n) &= \frac{P(y) P(x_1 | y) \cdots P(x_n | y)}{P(x_1, \cdots , x_n)} \\
&= \frac{P(y) \prod_{i = 1}^{n} P(x_i | y)}{P(x_1, \cdots , x_n)} \; \cdots (ii) \\
\end{align}
となる。実際に計算するときは右辺の分母$P(x_1, \cdots , x_n)$は定数なので、各カテゴリごとに分子だけ計算して、一番大きくなる(=確率が高い)カテゴリであると判定する。
計算例
下のような7つの文(教師データ)を与える。
含まれる単語 | カテゴリ |
---|---|
a, b, c | A |
a, c | A |
c | A |
a | A |
a, b | B |
a | B |
b | B |
この場合、それぞれの確率は以下になる
\begin{align}
P(A) &= \frac{4}{7} \\
P(B) &= \frac{3}{7} \\
P(a | A) &= \frac{3}{4} \\
P(b | A) &= \frac{1}{4} \\
P(c | A) &= \frac{3}{4} \\
P(a | B) &= \frac{2}{3} \\
P(b | B) &= \frac{2}{3} \\
P(c | B) &= \frac{0}{3} \approx 0.01 \\
\end{align}
※確率が0になるところは、代わりに0.01(小さい確率)を割り振る。(今回は出現しなかったが、もっと数が大きいデータでは出現する可能性があるため)
ここで、以下のような新しい文がある場合のカテゴリがAなのかBなのか判定する。
含まれる単語 | カテゴリ |
---|---|
a | ? |
「$a$が含まれる」「$b$が含まれない」「$c$が含まれない」場合のカテゴリA, Bの確率(分母は省略)を計算すると
\begin{align}
P(A | a, \bar{b}, \bar{c}) &\sim P(A) × P(a | A) × P(\bar{b} | A) × P(\bar{c} | A) \\
&= \frac{4}{7} × \frac{3}{4} × (1 - \frac{1}{4}) × (1 - \frac{3}{4}) \\
&= 0.080 \\
\end{align}
\begin{align}
P(B | a, \bar{b}, \bar{c}) &\sim P(B) × P(a | B) × P(\bar{b} | B) × P(\bar{c} | B) \\
&= \frac{3}{7} × \frac{2}{3} × (1 - \frac{2}{3}) × (1 - 0.01) \\
&= 0.094 \\
\end{align}
となり、カテゴリは$B$と判定する。
他リンク
最大事後確率(maximum a posteriori, MAP)推定: https://ja.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BA%8B%E5%BE%8C%E7%A2%BA%E7%8E%87