LoginSignup
1
5

More than 5 years have passed since last update.

Naive Bayes classifier(単純ベイズ分類器)の仕組み(導入)

Posted at

Naive Bayes classifier(単純ベイズ分類器)の仕組み

Naive Bayes Classifierの原理を解説します.
この記事では,その導入部分だけを書き,Naive Bayesそのものまでは書きません.Naive Bayesそのものについては,次の記事で書くつもりです.

概要

Naive Bayes Classifierは,機械学習の,分類アルゴリズムの一つです.
古くから,特にテキストの分類に使われてきました.
Apache Spark MLlibや,python nltkで使ってみることができます.

アルゴリズム

Naive Bayes以前

次のような,10件の学習データがあったとします.

おもしろい #モンスターハンター
おもしろい #モンスターハンター
おもしろい #モンスターハンター
おもしろくない #モンスターハンター
おもしろくない #モンスターハンター
おもしろい #たけしの挑戦状
おもしろくない #たけしの挑戦状
おもしろくない #たけしの挑戦状
おもしろくない #たけしの挑戦状
おもしろくない #たけしの挑戦状

ここで,さらに

おもしろくない

という入力があったとします.この入力の次に続くのは,#モンスターハンター か  #たけしの挑戦状 のどちらが適切でしょうか?
学習データを集計すると,以下のような表を作ることができます.

モンスターハンター たけしの挑戦状
おもしろい 3件 1件
おもしろくない 2件 4件

いま,入力は「おもしろくない」なので,表の2行目を見ます.

モンスターハンター たけしの挑戦状
おもしろくない 2件 4件

ここで,「おもしろくない」に,「モンスターハンター」と「たけしの挑戦状」のそれぞれが続く確率を計算してみると,以下のようになります.
まず,「モンスターハンター」については,

P(モンスターハンター|おもしろくない)=\frac{P(おもしろくない and モンスターハンター)}{P(おもしろくない)}=\frac{2}{2+4}=\frac{1}{3}

となります.ここで,条件付き確率の定義

P(B|A)=\frac{P(A\cap B)}{P(A)}

を用いました.
同様に,「たけしの挑戦状」については

P(たけしの挑戦状|おもしろくない)=\frac{2}{3}

となります.
以上の計算から,「おもしろくない」に続くのは,「モンスターハンター」の確率が1/3, 「たけしの挑戦状」である確率が2/3であることが,学習データを使ってわかりました.

つまり

入力データXと,正解ラベルYの組からなる,学習データを用意します.
この学習データから,X×Y上の確率分布が計算できます.
この確率分布を使って,分類器を以下のように作ることができます.

いま,入力X=xがあったとき,この入力に対応する出力がY=yである確率P(Y=y| X=x)は,

P(Y=y|X=x)=\frac{P(X=x, Y=y)}{P(X=x)}

で計算できます.この確率の最大値を与えるY=yが,最尤の出力です.

ところで,いま,P(X=x)はxを一つ与えるごとに固定されるので,最大値を与えるY=yを探すときには,分母のP(X=x)は気にせず,P(X=x, Y=y)だけを考えればよいです.

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5