Bayesの定理の有名な応用例に迷惑メールのフィルタリング(自動振り分け)がある.ここではアイ
ディアを簡単に解説する.
迷惑メールには特定の単語が含まれやすいなどの特徴があるので,そのデータを蓄積してBayes の 定理を応用しよう,というのが素朴な発想.受信するメールに関する事象を
• S: 迷惑メール(spam),N: 非迷惑メール(non spam)
• K(w): wというキーワードを含む
と お け ば ,過 去 の デ ー タ か ら P(S), P(N) や ,様 々 な 単 語 w1, w2, . . . に つ い て P(K(w1) | S), P(K(w2) | S), . . . などは算出可能.新しく受信したメールに単語 w が含まれているとき,
P(S|K(w))を計算して一定値以上なら迷惑メールと判定すればよい.
仮想的な例として,新たに受信したメールは「絶対安全」「完全無料」「入会特典」「期間限定」という キーワードを含んでおり,それらの出現頻度は表1で与えられるとする.また,受信メール全体に占め るスパムの割合はP(S) = 0.6, P(N) = 0.4だとする.
3.3 発展—迷惑メールのフィルタリング 33 迷惑メール 非迷惑メール
絶対安全(w1) 0.11 0.01 完全無料(w2) 0.12 0.01 入会特典(w3) 0.11 0.02 期間限定(w4) 0.12 0.02 表1: キーワードがメールに含まれる確率
絶対安全(w1)からBayesの定理を使って計算すると
P(S|K(w1)) = P(K(w1)|S)P(S)
P(K(w1)|S)P(S) +P(K(w1)|N)P(N) (3.1)
= 0.11×0.6
0.11×0.6 + 0.01×0.4 ≒0.9429
十分高い確率にも思えるが迷惑メールでない可能性も約6%残るのでこれだけで断定して自動的に消去 するにはリスクが高過ぎるだろう.他のキーワードも同様で,
P(S|K(w2)) = 0.12×0.6
0.12×0.6 + 0.01×0.4 ≒0.9474, P(S|K(w3)) = 0.11×0.6
0.11×0.6 + 0.02×0.4 ≒0.8919, P(S|K(w4)) = 0.12×0.6
0.12×0.6 + 0.02×0.4 = 0.9 となり,単体で断定するには心許ない.
それならキーワードを組み合わせればいいのだが,P(K(w1)∩K(w2)|S)のような確率は表1には含 まれていないし,そもそもそのような組み合わせデータを全て準備しておくことは現実的でない.そこ で次のような対処が考えられる.キーワードに関する二つの事象A, Bが独立(P(A∩B) =P(A)P(B)) かつ条件付き独立(P(A∩B|S) =P(A|S)P(B|S))でもあるとき,両方のキーワードを含むメール がスパムである確率は
P(S|A∩B)Bayes= P(A∩B|S)P(S) P(A∩B)
独立性= P(B|S)P(A|S)P(S) P(B)P(A)
= P(B|S)
P(B) ·P(A|S)P(S)
P(A) (分けて考えると)
Bayes
= P(B|S)
P(B) ·P(S |A) (後ろはこうなる)
と計算できる.最後の式は,B だけを用いる判定
P(S|B) = P(B|S)P(S) P(B)
の事前分布P(S)を形式的に P(S |A)で置き換えることでも得られる.つまり,まずAだけを用い て事後確率P(S|A)を求め,それを新しく事前確率だと思って次はB だけを用いてP(S|B)を求め るのと同じ結果になる.このように,条件が加わる毎に事後確率を新たな事前確率としてBayesの定 理を繰り返し適用していくことをベイズ更新(Bayesian updating) という.また,単語間に独立性 と条件付き独立性を仮定して上記のように計算を簡便化する判別法を単純ベイズ分類器 (naive Bayes
classifier) という.現実の問題に対して条件付き独立性が厳密に成り立つとは到底考えられないが,
一方でナイーブベイズはかなりよい性能を発揮することがこれまでの実績により証明されている.
34 3 BAYES(ベイズ)の定理
そこで式(3.1)に戻って,キーワード間の(条件付き)独立性を仮定してBayes更新をしてみると
P(S|K(w1))≒0.9429−→w2 0.12×0.9429
0.12×0.9429 + 0.01×0.0571≒0.9950
w3
−→ 0.11×0.9950
0.11×0.9950 + 0.02×0.0050≒0.9991
w4
−→ 0.12×0.9950
0.12×0.9950 + 0.02×0.0050≒0.9998 これくらい高確率なら自動で迷惑メールフォルダに移しても構わないだろう.
Bayes 更新(というより複数条件による判定)にはもう一つの利点がある.上の例では事前確率を
P(S) = 0.6として計算したが,これは状況によって異なるだろう.人によってP(S) = 0.01というこ
とやP(S) = 0.8 ということもあるかもしれない.しかし表2からわかるように,事前確率の初期値の
影響は数回の更新によってかなり小くなっており,あと二三個も単語を追加すれば完全に消すこともで きそうである.つまり,Bayesの定理を使う推論は確かに(場合によっては主観的・恣意的な)事前確 率の設定に強く影響を受けるが,その影響は客観データを増やすことで解消できなくはない,というこ とである.
事前確率P(S) 0.01 0.5 0.9 P(S |K(w1)) 0.1 0.9167 0.99
w2更新後 0.5714 0.9925 0.9991 w3更新後 0.8800 0.9986 0.9998 w4更新後 0.9778 0.9998 1.0000 表2: 事前確率とBayes更新による事後確率の変化
迷惑メールフィルターについてはこれ位にしておこう.ここまででも通常の数理統計のノートとすれ ばやり過ぎの部類だと思うが,これ以上やるとそれはもう機械学習とか人工知能という科目名でやるべ き内容になってしまう*14.興味を持てばその方面の文献などを探してみるといいだろう.
*14意外かもしれないが,人工知能分野は統計のかなり重要な応用分野である.
35
4 確率変数・確率分布と期待値・分散
ここでは確率論の(測度論を表に出す)流儀にかなり準拠して確率変数を定義するが,このやり方は 初学者にはハードルが高いと考えられているのか*15,初等的な本では採用されないことが多い.実際,
大学1・2年向けの標準的な統計の教科書を読むだけであれば,確率変数の定義など気にせず密度関数 の計算だけで話は終わるだろう.従って,難しく感じる場合(おそらく最初はそう感じる)4.2節まで は軽く読み流し,とりあえず「試行の結果に対応して色々な値をとる変数」「どのような値をとるかが確 率法則によって決まる変数」つまりは「サイコロの目みたいなもの」くらいに思うことにして,4.3節 からの内容に集中するのも妥当である.(また,高校数学B「確率分布と統計的な推測」の内容もかな り参考になるはずである*16.)
4.1 確率変数の定義
例によって(Ω, P)は確率空間とする.
定義 4.1 (確率変数). 標本空間Ωで定義された関数X(ω)を確率変数 (random variable) と いう.しばしば, ω∈Ωは省略して単に X と書く.
例 4.2. (1) サイコロ振り Ω ={1,2,3,4,5,6}={i|1≤i≤6}. X(i) =iは確率変数.単純 に出目そのもの.Y(i) = 2i, Z(i) =i2 も確率変数でそれぞれ出目の倍数,二乗を表す.
(2) サイコロ2回振りΩ ={ω= (i, j)|1 ≤i, j≤6}. X(ω) =i, Y(ω) =j, Z(ω) =i+j は 確率変数でそれぞれ1回目の目,2回目の目,目の和を表す.
(3) コイン 3回投げ Ω = {ω = (i, j, k) | i, j, k = 0or1}. X(ω) = i, Y(ω) = j, Z(ω) = k, T(ω) =i+j+kは確率変数でそれぞれ1, 2, 3回目の結果と表の出る回数を表す.
上の例で,(1)ではY = 2X, Z=X2とも書け,(2)ではZ=X+Y, (3)ではT =X+Y+Z と書 くこともできる.つまり,一般に確率変数の関数もまた確率変数である.また,定数関数も(100%同 じ値をとる)確率変数の一種と考えることができる.
注4.3. たかがサイコロやコインに何でこんな定義をして話を面倒にするのか,と感じる人もいる だろうが,数学者が定義として採用するだけあって上手く出来ているのである.
例えば上の例の(2)では,目の和だけを考えたければΩ ={2,3, . . . ,11,12}としても構わない.
しかし「和じゃなくて積を考えたいからΩ ={1,2, . . . ,30,36}にして」とか「差を見たいんだけ ど,じゃあΩ ={0,1,2,3,4,5}かな?」とか言われる度に標本空間を(確率測度も)設定し直し ていたのでは切りがない.大元にあるのはサイコロを2回振るという試行なのだから,そこは土台 として確定・固定しておいて,細かい条件は確率変数で表現してその計算を行えるように整備する 方が理論的に明快で柔軟である.
*15実際,数学として厳密にやれば高いハードルではある.
*16現行の指導要領では統計が強化されていて,以前は大学の範囲だった内容がかなり高校の教科書に入っている.
36 4 確率変数・確率分布と期待値・分散