オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【機械学習】ベイズ識別 / Naive Bayes Classifier #アルゴリズム編

Index

ベイズ識別 / Naive Bayes Classifier

機械学習アルゴリズムのひとつ.

医療の診断

医療の診断では、いろいろな検査項目をもとに、健康かそうでないかが判断される.

各検査項目の値と健康状態の間には、相関があるが、その影響は確率的である.

すなわち、ある値以下であれば必ず健康というわけではないし、同じ値であっても、健康な人とそうでない人がいる.



このように観測データ  x と所属するクラスの間に確率分布が仮定される
識別問題について、ベイズ識別を考える.

最大事後確率基準

観測データを  x、 識別クラスを  C_i\ (i=1,\ \cdots,\ K) とする.

ベイズの識別規則は、下の式で定義される事後確率がもっとも大きなクラスに観測データを分割する.

 P(C_{i} | x)\ = \displaystyle \frac{p(x | C_{i})}{p(x)}\ \times\ P(C_{i})



この式は、ベイズの定理とよばれ、クラスと観測データの同時分布  p(C_i, x)

 p(C_i, x)\ =\ P(C_i | x)\ p(x)\ =\ p(x | C_i)\ P(C_i)



で与えれられることから導かれる.

クラス  C_i C_j の識別境界は、事後確率が等しくなるところ、すなわち、

 
P(C_{i}|x)
= \displaystyle \frac{p(x | C_{i})\ P(C_{i})}{p(x)}
= \displaystyle \frac{p(x | C_{j})\ P(C_{j})}{p(x)}
= P(C_{j}|x)



が成り立つところである.

上の式からわかるように、周辺確率  p(x) はどちらのクラスにも共有に現れているので、
識別規則に含める必要はない.

したがって、ベイズの識別規則は、

識別クラス  =\ arg \displaystyle \max_{i}\ p(x|C_{i})\ P(C_{i})



で与えられる.

識別の規則の例

ある町の 1000 人をランダムにサンプルした仮想的なデータを下に示す.

サンプル 喫煙する
(S=1)
飲酒する
(T=1)
健康な人
(G=1)
800 人 320 ( / 800) 人 640 ( / 800) 人
健康でない人
(G=0)
200 人 160 ( / 200) 人 40 ( / 200) 人
計 1000 人



健康な人 (G=1) 800 人と、健康でない人 (G=0) 200 人の 2 つのクラスが得られ、
それぞれのクラスで、喫煙と飲酒の有無を調査した結果が示されている.

ここで、以下のように定義.

  • 喫煙あり (S=1)、喫煙なし (S=0)
  • 飲酒あり (T=1)、飲酒なし (T=0)

目的

目的は、このデータを基に、この町の他の人 (新しい未知のサンプル)の喫煙と飲酒の情報から、
その人の健康状態を予測するためのベイズの識別規則を導くこと.

すなわち、事後確率

 P(G|S, T)\ =\ \displaystyle \frac{P(S, T|G)\ P(G)}{P(S, T)}



を求めること.

事前確率

各クラス (健康 / 健康でない) の事前確率 (= 事後の情報を加味する前の、事前情報のみから得られる確率)は、


\begin{array}{ccccc}
P(G=1)\ & = & \displaystyle \frac{800}{1000} & = & \displaystyle \frac{4}{5} \\
\\
P(G=0)\ & = & \displaystyle \frac{200}{1000} & = & \displaystyle \frac{1}{5}
\end{array}



となる.

事後の情報が加味される前の段階では、無条件で、80% の確率で健康であると判断されてしまう.

条件付き確率

条件付き確率  P(S, T|G) については、話を簡単にするため、 S T の間に条件付き独立
(つまり、喫煙の飲酒に関連はないとする. 実際はありそうだが、)

 P(S, T|G)\ =\ P(S|G)\ P(T|G)



が成り立っているとする.

このように仮定することで、喫煙と飲酒に関する条件付き確率を別々に考えることができる.

喫煙に関する条件付き確率

喫煙に関する条件付き確率  P(S|G)


\begin{array}{ccccc}
P(S=1|G=1)\ & = & \displaystyle \frac{320}{800} & = & \displaystyle \frac{2}{5} \\
\\
P(S=0|G=1)\ & = & \displaystyle \frac{480}{800} & = & \displaystyle \frac{3}{5} \\
\\
\\
P(S=1|G=0)\ & = & \displaystyle \frac{160}{200} & = & \displaystyle \frac{4}{5} \\
\\
P(S=0|G=0)\ & = & \displaystyle \frac{40}{200} & = & \displaystyle \frac{1}{5}
\end{array}



と得ることができる.

例えば、条件付き確率  P(S=1|G=1) では、
健康な人のサンプルの中で (=条件)、喫煙する人の確率 (割合) を表している.

飲酒に関する条件付き確率

同様に、飲酒に関する条件付き確率  P(T|G)


\begin{array}{ccccc}
P(T=1|G=1)\ & = & \displaystyle \frac{640}{800} & = & \displaystyle \frac{4}{5} \\
\\
P(T=0|G=1)\ & = & \displaystyle \frac{160}{800} & = & \displaystyle \frac{1}{5} \\
\\
\\
P(T=1|G=0)\ & = & \displaystyle \frac{40}{200} & = & \displaystyle \frac{1}{5} \\
\\
P(T=0|G=0)\ & = & \displaystyle \frac{160}{200} & = & \displaystyle \frac{4}{5}
\end{array}



と得られる.

最終的な条件付き確率

条件付き確率  P(S, T|G) は、 2\ \times\ 2\ \times\ 2\ =\ 8 通りあることがわかり、
それぞれ上の情報を用いて計算する.

例えば、条件付き確率  P(S=0, T=0|G=0)
(健康でない人のサンプルのなかで、喫煙も飲酒もしない確率) は、

 
\begin{array}{ccc}
P(S=0, T=0|G=0)\ & = & P(S=0|G=0)\ \times\ P(S=0|G=0) \\
\\
 & = & \displaystyle \frac{1}{5}\ \times\ \displaystyle \frac{4}{5} \\
\\
 & = & \displaystyle \frac{4}{25} 
\end{array}



となる.

周辺確率

事後確率が確率として利用できるようにするために、周辺確率を用いて、正規化する.

周辺確率  P(S, T) は、 2\ \times\ 2\  =\ 4 通り考えられる.

そして、周辺確率も上で得た、「条件付き確率」と「事前確率」を利用することで求められる.


\begin{array}{ccccc}
P(S, T)&=& P(S, T, G=1) & + & P(S, T, G=0) \\
&=& P(S, T | G=1) P(G=1) & + & P(S, T | G=0) P(G=0)
\end{array}

事後確率

事前確率に、条件付き確率の情報を加えることで、
事後確率 (=事後情報が加味された確率) を利用することができる.



上で、求めた「事前確率」、「条件付き確率」、「周辺確率」を用いて求めることができる.

 P(G|S, T)\ =\ \displaystyle \frac{P(S, T|G)\ P(G)}{P(S, T)}



以下結果となる.

(S, T) (S, T) (S, T) (S, T)
(1,1) (0,1) (1,0) (0,0)
P(G=1 | S, T) 8/9 48/49 1/3 3/4
P(G=0 | S, T) 1/9 1/49 2/3 1/4
判断 G=1 G=1 G=0 G=1



この結果は、例えば、隣町のある人への調査結果が  (S, T)\ =\ (0, 1) だったとする.
(喫煙はしないが、飲酒はする)

その場合、健康でない (G=0) と判定されるという結果になる.

尤度比

ベイズの識別規則による識別境界は、事後確率が等しくなるところ、つまり

 P(C_i|x)\ =\ P(C_j|x)



で与えられる.

この式を変形して、クラス間の条件付き確率の比、すなわち
尤度比の形で識別規則を構成することもできる.

yhayato1320.hatenablog.com

誤り率

2 クラス  C_1,\ C_2 の識別問題を用いて、ベイズの識別規則の誤り率について考える.

クラス  C_1 の事後確率が、クラス  C_2 の事後確率より大きいとき、
入力  x C_1 に識別する.

条件付きベイズ誤り率

上のことから、ベイズの識別規則のもとでの誤り率  \epsilon (x) は、
事後確率の小さい方になるので、

 \epsilon (x)\ =\ \min\{ P(C_1 | x),\ P(C_2 | x) \}



となる.

これを条件付きベイズ誤り率という.

ベイズ誤り率

クラス  C_i に識別される領域を  R_i とする.

実装

参考