本ページでは、ナイーブベイズ法とは何かについてまとめたい。ナイーブベイズ法とは、一言で言えば、ベイズの定理を用いてデータを分類する機械学習の一手法である。
ベイズの定理
まず、ベイズの定理は以下のように表される。
P(A|B)はBが発生したという条件の下でAが発生する条件付確率である。
ナイーブベイズの例
では、このベイズの定理を用いてどのようにデータを分類できるのか。以下、スポーツ記事を「野球」「サッカー」「バスケ」のいずれかに分類することを考える※。具体的には、記事の中に登場する単語の種類に基づいて、記事を上記3つのいずれかのカテゴリーに分類する。
事前の学習により、以下の情報が得られたとする。
単語 野球 サッカー バスケ
試合 0.6 0.5 0.8
シュート 0.1 0.6 0.4
ドーム 0.2 0.1 0.3
各カテゴリにおいて、各単語がどれくらいの割合で発生したかを示したものである。例えば、「試合」という単語が野球カテゴリーの記事の中で登場した割合は60%ということになる。そして、全体の記事の中で野球カテゴリーの記事が50%、サッカーが30%、バスケが20%であったとする。
以下、「新たに発表された記事が、どのカテゴリーに属するのか」を考えていく。そして、この新たに発表された記事には、「試合」「シュート」「ドーム」の3つの単語すべてが登場していたとする。
ベイズの定理に基づけば、「新たな記事Bが発表され、その記事がカテゴリーAiに属する確率)」は以下の様に表せる。
ここで、野球カテゴリーをA1、サッカーをA2、バスケをA3とする。
ナイーブベイズ法では、P(A1|B) 、P(A2|B)、P(A3|B)を比較して、値が一番大きいカテゴリーを、その記事が分類されるべきカテゴリーと判断する。
P(Ai)は事前の学習により既に判明している。問題はP(B|Ai)をいかにして求めるかである。ここで、記事に登場する単語の情報を活用する。野球カテゴリーの記事の中で、「試合」という単語が登場する確率は60%であった。すなわち、P(試合∈B | A1) = 0.6である。P(B|Ai)は、各単語がカテゴリーAiの中に登場する条件付確率を掛け合わせたものになる。
P(B|Ai) = P(試合∈B | A1)×P(シュート∈B | A1)×P(ドーム∈B | A1)
ここで、「各単語の出現確率は他の単語の出現確率に影響を与えない」という仮定、つまり独立性の仮定を置いている。これが、”ナイーブ”ベイズと呼ばれるゆえんである。
それぞれのカテゴリーについてこれを計算すると、
野球:P(B|A1) = 0.6×0.1×0.2 = 0.012
サッカー:P(B|A2) = 0.5×0.6×0.1 = 0.03
バスケ:P(B|A3) = 0.8×0.4×0.3= 0.096
となる。最後にP(B)を計算すれば求めたかったP(Ai|B)が判明するのだが、P(B)はどのカテゴリーにおいても共通しており、大小関係を比較するだけならわざわざ求める必要がない。よって、結局、P(B|Ai)P(Ai)の大小をカテゴリー間で比較し、値が最も大きなカテゴリーを採用すればよいことになる。
野球:P(B|A1)P(A1)= 0.012×0.5=0.006
サッカー:P(B|A2)P(A2)= 0.03×0.3= 0.009
バスケ:P(B|A2)P(A2)= 0.096×0.2= 0.0192
よって、この場合、記事Bはバスケカテゴリーに分類されることになる。
※ここで取り上げた具体例は総務省資料で用いられたものを拡張したものである。
(参考):