ベイズの定理を用いた識別規則
最大事後確率基準
ベイズの定理
ベイズの定理とは、観測データを$ x、その識別クラスを$ C_i(i=1,...K)とする時、$ xがあるクラス$ C_iに所属する確率$ P(C_i|x)を以下のように表せる、という定理のことです。
定義
$ P(C_i|x) = \frac{p(x|C_i)}{p(x)} × P(C_i) = 修正項 × 事前確率
・$ P(C_i|x)(事後確率):観測データ$ xが与えられたもとで、それがクラス$ C_iに属する条件付き確率。
・$ P(C_i)(事前確率):クラス$ C_iの生起確率。観測する前からわかっている確率。
・$ P(x|C_i)(クラス条件付き確率/尤度):クラスが与えられたもとでの観測データ$ xの確率分布。$ xがクラス$ C_iに属しているのが「尤もらしい」と考えられる確率。
・$ p(x)(周辺確率):観測データ$ xの生起確率。クラスとの同時確率$ p(C_i, x)から、$ p(x) = \sum^K_{i=1}p(C_i, x)のようにクラス全体に関する和をとる(このような操作を周辺化と呼ぶ)ことで得られる。
クラスの識別規則
事後確率は、事前確率をクラス条件付き確率(尤度)と周辺確率との比による修正項で修正したものと考えることができます。つまり、尤度$ P(x|C_i)が、観測データ$ xの生起確率$ p(x)より大きければ、事後確率は事前確率より大きくなり、小さければ、事後確率は事前確率より小さくなります。
クラス$ C_iと$ C_jの識別境界は、事後確率が等しくなるところ、すなわち
$ P(C_i|x) = \frac{p(x|C_i)P(C_i)}{p(x)} = \frac{p(x|C_j)P(C_j)}{p(x)} = P(C_j|x)
が成り立つところです。ただし、周辺確率$ p(x)はどちらのクラスにも含まれているので、識別規則に含まれる必要はありません。したがって、ベイズの識別規則は、
識別クラス = $ argmax(p(x|C_i)P(C_i))
で与えられます。
クラスの識別規則の例
テーブル$ 1.1のデータをもとに例を見てみます。ここでは、それぞれのクラスで喫煙と飲酒の有無を調査した結果が示されています。目的は、このデータをもとに、この町の他の人の喫煙と飲酒の有無の情報から、その人の健康状態を予測するためのベイズの識別規則を導くことです。すなわち、事後確率
$ P(G|S, T) = \frac{P(S, T|G)P(G)}{P(S, T)}
を、特徴(S, T)のすべての組み合わせについて求めることです。
table: 1.1 ある町の喫煙と飲酒に関するデータ(1000人)
サンプル数 喫煙する人(S = 1) 飲酒する人(T = 1)
健康な人(G = 1) 800人 320人 640人
健康でない人(G = 0) 200人 160人 40人
各クラスの事前確率は、下記のようになります。
$ P(G = 1) = \frac{800}{1000} = \frac{4}{5}, \ P(G = 0) = \frac{200}{1000} = \frac{1}{5}
クラス条件付き確率$ P(S, T|G)については、$ Sと$ Tの間に条件付き独立は成り立っていると仮定しておきます。
$ P(S, T|G) = P(S|G)P(T|G)
喫煙に関するクラス条件付き確率$ P(S|G)は、下記のように得ることができます。
$ P(S = 1|G = 1) = \frac{320}{800} = \frac{2}{5}, \ P(S = 0|G = 1) = \frac{480}{800} = \frac{3}{5}
$ P(S = 1|G = 0) = \frac{160}{200} = \frac{4}{5}, \ P(S = 0|G = 0) = \frac{40}{200} = \frac{1}{5}
飲酒に関するクラス条件付き確率$ P(T|G)は、下記のように得ることができます。
$ P(T = 1|G = 1) = $ \frac{640}{800} = \frac{4}{5}, \ P(T = 0|G = 1) = \frac{160}{800} = \frac{1}{5}
$ P(T = 1|G = 0) = \frac{40}{200}, \ P(T = 0|G = 1) = \frac{160}{200} = \frac{4}{5}
以上より、クラス条件付き確率$ P(S, T|G)と同時確率$ P(S, T, G) = P(S, T|G)P(G), および周辺確率$ P(S, T)は、テーブル$ 1.2のようになります。
table: 1.2 クラス条件付き確率, 同時確率, 周辺確率の計算結果
(S, T)
(1, 1) (0, 1) (1, 0) (0, 0)
P(S, T|G = 1) 8/25 12/25 2/25 3/25
P(S, T|G = 0) 4/25 1/25 16/25 4/25
P(S, T, G = 1) 32/125 48/125 8/125 12/125
P(S, T, G = 0) 4/125 1/125 16/125 4/125
P(S, T) 36/125 49/125 24/125 16/125
以上により、得られた同時確率と周辺確率を用いて、事後確率を計算します。
table: 1.3 事後確率の計算結果と, 健康か否かの判断
(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
健康か否か(G = 0 or 1)の判断は、事後確率の大きいほうをみればよいです。この場合、(S = 1, T = 0)のときにのみ、(G = 0)が(G = 1)の時の事後確率を上回っており、喫煙をして飲酒をしない人が健康ではないと判断されることになります。
尤度比
冒頭のほうで記述したように、ベイズの識別規則による識別境界は事後確率が等しくなるところ、$ P(C_i|x) = P(C_j|x)で与えられます。
$ p(x|C_i)P(C_i) \ \binom{>}{<} \ p(x|C_j)P(C_j) \ \binom{=> C_i}{=> C_j}
さらに、この式を変形して、クラス間のクラス条件付き確率の比、すなわち尤度比$ p(x|C_i)/p(x|C_j)の形にすると、
$ \frac{p(x|C_i)}{p(x|C_j)} \ \binom{>}{<} \ \frac{P(C_j)}{P(C_i)} = h_{ij} \binom{=> C_i}{=> C_j}
が得られます。尤度そのものの大きさに意味はありませんが、尤度比には意味があります。すなわち、尤度比が事前確率の比$ P(C_j)/P(C_i) = h_{ij}(閾値になる)よりも大きければ、クラス$ iに識別すればよいです。
条件付きベイズ誤り率
条件付きベイズ誤り率とは、ある観測データ$ xが与えられた時、ベイズの識別規則に従って識別を行った場合に誤識別する確率のことです。したがって、条件付きベイズ誤り率$ \varepsilon(x)は事後確率の小さいほうになります。
$ \varepsilon(x) = min[P(C_i|x), P(C_2|x)]
また、ベイズ誤り率は条件付きベイズ誤り率の($ xに関する)期待値で表されます。
最小損失基準に基づくベイズの識別規則
損失の概要
「病気の人を健康であると誤識別するリスク」は「健康な人を病気であると誤識別するリスク」よりも高いです。そういった危険性を考慮した識別規則を構成するために、損失$ L_{ij}が必要となってきます。
$ L_{ij}は、真のクラスが$ C_jであるサンプルを$ C_iと判断することによって被る損失を表します。
損失の定義
観測データ$ xをクラス$ C_iと判断したときに被る損失は、以下のようになります。
$ r(C_i|x) = \sum^K_{k=1}L_{ik}P(C_k|x) ・・・ (1)
損失の識別規則
識別規則は、損失の最も小さいクラスに識別することです。
識別クラス = $ argmin \ r(C_i|x)
例とし2クラスの場合の時の損失の期待値が最小となる識別規則を求めます。入力データ$ xが与えられたときに被る損失は、以下のようになります。
$ r(x) = min[r(C_1|x), r(C_2|x)]
クラス1とクラス2に識別される領域全体にわたる損失の期待値は、
$ r = E(r(x)) = \int_{R_1 + R_2} min[r(C_1|x), r(C_2|x)]p(x)dx
$ = \int_{R_1} (L_{11}p(x|C_1)P(C_1) + L_{12}p(x|C_2)P(C_2))dx + \int_{R_2} (L_{21}p(x|C_1)P(C_1) + L_{22}p(x|C_2)P(C_2))dx
となります。損失の期待値が最小となる識別境界は、各入力$ xに対して被積分項が小さい方に判断されるような領域$ R_1と$ R_2を定めることによって得ることができます。したがって、識別規則は、
$ L_{11}p(x|C_1)P(C_1) + L_{12}p(x|C_2)P(C_2) \ \binom{<}{>} \ L_{21}p(x|C_1)P(C_1) + L_{22}p(x|C_2)P(C_2) \binom{=> C_1}{=> C_2}
で与えられます。また、以下のように書き換えることができます。
$ (L_{21} - L_{11})p(x|C_1) \ \binom{>}{<} \ (L_{12} - L_{22})p(x|C_2)P(C_2) \ \binom{=> C_1}{=> C_2}
また、尤度比を用いれば、
$ \frac{p(x|C_1)}{p(x|C_2)} \ \binom{>}{<} \ \frac{(L_{12} - L_{22})P(C_2)}{(L_{21} - L_{11})P(C_1)} \ \binom{=> C_1}{=> C_2}
と書くことができます。
損失の識別規則の例
(1)より、健康診断で、診断データ$ xを見て健康と判断する場合と、病気と判断する場合の損失は、以下のように表されます。
$ r(健康|x) = L_{健康, \ 健康}P(健康|x) + L_{健康, \ 病気}P(病気|x)
$ r(病気|x) = L_{病気, \ 健康}P(健康|x) + L_{病気, \ 病気}P(病気|x)
したがって、識別規則は、
$ r(健康|x) \ \binom{<}{>} \ r(病気|x) \ \binom{=> 健康}{=> 病気}
となります。
リジェクト
リジェクトの概要
条件付きベイズ誤り率$ \varepsilon(x)が大きな領域では判断を避けることをリジェクトといいます。
リジェクトの定義
例として、誤り率が$ \varepsilon(x) \geq tとなる領域をリジェクトとする場合を考えます。
閾値が$ tであるクラス$ 1側のリジェクト領域, $ L_R(t) = \varepsilon(x) \geq tの尤度比による表現は、以下のようにして求めることができます。
クラス$ 1側では、$ p(x|C_1)P(C_1) > p(x|C_2)P(C_2)が成り立っているので、
$ \varepsilon(x) = \frac{p(x|C_2)P(C_2)}{p(x)} \geq t
より、$ p(x) = p(x|C_1)P(C_1) + p(x|C_2)P(C_2)を代入して整理すれば、
$ \frac{p(x|C_1)}{p(x|C_2)} \leq \frac{1 - t}{t}\cdot \frac{P(C_2)}{P(C_1)}
を満たす領域がクラス$ 1側のリジェクト領域となります。
リジェクトの識別規則
一般に、$ K個のクラスがある場合、リジェクトを含めた識別規則は、
識別クラス = $ \left\{\begin{array}{ll} C_i <= P(C_i|x) = maxP(C_j|x) > 1-tの場合 \\ リジェクト <= すべてのクラスについてP(C_i|x) \leq 1-tの場合 \end{array}\right.
とします。リジェクトする閾値$ tを下げればリジェクト率は増加し、誤って認識する確率も減少することになります。
認識率 = $ \frac{正答数}{(全テストデータ数) - (リジェクトされたデータ数)}
誤認識率 = $ \frac{誤り数}{(全テストデータ数) - (リジェクトされたデータ数)}