【E資格対策】ベイズ則・ナイーブベイズ

ベイズの定理(離散型)

ベイズの定理(ベイズ則)は, 観測されたデータ(結果)から, その原因である確率を求めるために使われる定理である.

一般的な式は以下の通り :

P(HD)=P(DH)P(H)P(D)P(H | D) = \frac{P(D | H) P(H)}{P(D)}

ここで, 各項の意味は

  • P(H)P(H) : 事前確率 (Prior Probability)
    • データDが観測される前の時点における, 仮説 HH が起こる確率
  • P(D)P(D) : 周辺尤度 (Marginal Likelihood)
    • 全事象に対する, データ DD が観測される確率
  • P(DH)P(D | H) : 尤度 (Likelihood)
    • 仮説 HH の下で, データ DD が観測される条件つき確率
  • P(HD)P(H | D) : 事後確率 (Posterior Probability)
    • データ DD が観測された後の時点における, 仮説 HH が起こる条件つき確率

である.

事後確率は, 事前確率尤度に比例し, 周辺尤度に反比例する」と覚える.

(事後確率)=(尤度)×(事前確率)(周辺尤度)\text{(事後確率)} = \frac{\text{(尤度)} \times \text{(事前確率)}}{\text{(周辺尤度)}}

ベイズの定理(連続型)

ベイズの定理は, 連続的な確率変数に対しても適用できる. この場合は, 新しいデータ xx が観測された下で, それまで既知だったパラメータ θ\theta が取り得る値の分布を求めることができる.

式は以下の通り :

π(θx)=f(xθ)π(θ)θf(xθ)π(θ)dθ\pi(\theta | x) = \frac{f(x | \theta) \pi(\theta)}{\int_{\theta} f(x | \theta) \pi(\theta) \mathrm{d}\theta}

ここで, 各項の意味は

  • π(θ)\pi(\theta) : 事前分布 (Prior Distribution)
    • データ xx が観測される前の時点における, パラメータ θ\theta の分布
  • f(xθ)f(x | \theta) : 尤度関数 (Likelihood Function)
    • パラメータ θ\theta の下で, データ xx が観測される確率密度関数
  • θf(xθ)π(θ)dθ\int_{\theta} f(x | \theta) \pi(\theta) \mathrm{d}\theta : 周辺尤度 (Marginal Likelihood)
    • 全ての θ\theta に対する, データ xx が観測される確率
  • π(θx)\pi(\theta | x) : 事後分布 (Posterior Distribution)
    • データ xx が観測された下での, パラメータ θ\theta の分布

である.

※ 連続型と離散型の両方の確率変数が混在するパターンもある(練習問題3参照).

ナイーブベイズ

ナイーブベイズ分類器(単純ベイズ分類器)は, 先述のベイズの定理を基にした機械学習の分類アルゴリズムであり, 教師あり学習に分類される.

文書分類やスパムフィルタなどの問題に広く利用されており, 例えば, あるテキストが与えられた場合に, 各単語の出現頻度を特徴量とし, そのテキストがどのカテゴリに属するかを確率的に推定する.


このアルゴリズムが「ナイーブ」と呼ばれる理由は, 全ての特徴量は互いに独立であるという仮定を置いているためである.

例えば, 「丸い」「赤い」「甘い」という特徴から「リンゴ」を判定する場合, 本来は「赤ければ甘い可能性が高い」といった相関があるはずだが, ナイーブベイズではこれらを完全に無関係なものとして扱うのである.

メリット

  • 処理が高速 : 学習も予測も計算量が少なく、リアルタイム処理に向いている.
  • 省メモリ : 必要な統計量(確率の積)を保持するだけなので, メモリ効率が良い.
  • 高次元データに強い : 特徴量が多くても, 各特徴量を独立に扱うため精度が落ちにくい(= 次元の呪いに比較的強い).
  • 少量のデータでもOK : 学習データが少なくても, それなりの精度を出せる.

デメリット

  • 独立性の仮定 : 現実のデータには特徴量間の相関があることが多いため, 他モデル(ランダムフォレストやSVMなど)に精度で負ける可能性がある.

練習問題

問題1

とある製品Aを製造する工場1, 2が存在する.

出荷される製品Aのうち, 工場1で製造されるものは全体の 70%70\% , 工場2で製造されるものは全体の 30%30\% である. また, 製造時に工場1では 2%2\%, 工場2では 10%10\% の確率で不良品が発生してしまうという.

このとき, 消費者が購入した製品Aが不良品であった場合, それが工場1で製造されたものである確率を求めよ.


解答 (クリックで展開)

各事象を以下のように定義する.

  • 事象 XX : 製品Aが工場1で製造される
  • 事象 YY : 製品Aが不良品である

このとき, 求める確率は P(XY)P(X | Y) である.

ここで, 問題の仮定から P(X)=0.7,P(YX)=0.02P(X) = 0.7, \, P(Y | X) = 0.02 であり, P(Y)P(Y) については各工場で不良品が発生する確率を足し合わせればよいから,

P(Y)=0.7×0.02+0.3×0.1=0.044P(Y) = 0.7 \times 0.02 + 0.3 \times 0.1 = 0.044

よって, ベイズの定理から,

P(XY)=P(YX)P(X)P(Y)=0.02×0.70.044=0.31810.318.P(X | Y) = \frac{P(Y | X) P(X)}{P(Y)} = \frac{0.02 \times 0.7}{0.044} = 0.3181 \cdots \approx \underline{0.318}.

問題2

全人口のうち 1%1\% が感染しているある病気への感染を判定する検査Xが存在する. この検査Xについては, 以下の性質があることが分かっている.

  • 実際に病気に感染している場合には, 98%98\% の確率で陽性判定を示す.
  • 本当は病気ではない場合にも 0.1%0.1\% の確率で陽性判定を示す.

ある被験者がこの検査Xを受けて陽性判定を受けたとする. この被験者が実際に病気に感染している確率を求めよ.


解答 (クリックで展開)

各事象を以下のように定義する.

  • 事象 PP : 検査Xで陽性判定を受ける (文字が被った...)
  • 事象 II : 実際に病気に感染している

このとき, 求める確率は P(IP)P(I | P) である.

ここで, 問題の仮定から P(P)=0.98,P(PI)=0.01P(P) = 0.98, \, P(P | I) = 0.01 であり, P(P)P(P) については実際に病気に感染している場合と感染していない場合のそれぞれで陽性判定を受けるケースを考えればよいから,

P(P)=0.01×0.98+0.99×0.001=0.0107P(P) = 0.01 \times 0.98 + 0.99 \times 0.001 = 0.0107 \cdots

よって, ベイズの定理から,

P(IP)=P(PI)P(I)P(P)=0.98×0.010.0107=0.91580.916.P(I | P) = \frac{P(P | I) P(I)}{P(P)} = \frac{0.98 \times 0.01}{0.0107} = 0.9158 \cdots \approx \underline{0.916}.

問題3

全社員の平均通勤時間 μ\mu を確率変数とする. μ\mu は当日の天候に影響を受けるので, 確率 13\frac{1}{3}μ=0.5\mu = 0.5, 確率 12\frac{1}{2}μ=1\mu = 1, 確率 16\frac{1}{6}μ=2\mu = 2 となる. 上記で定まる μ\mu に対して, 社員の通勤時間 XX は正規分布 N(μ,1)N(\mu, 1) に従うものとする.

今朝、ある社員の通勤時間が X=0.8X = 0.8 であった. このとき, μ=0.5\mu = 0.5 である確率を求めよ.

ただし, 標準正規分布の確率密度関数は, 以下の値を用いて良い.

ϕ(0.3)0.3814,ϕ(0.2)0.3910,ϕ(1.2)0.1942\phi(0.3) \approx 0.3814, \quad \phi(-0.2) \approx 0.3910, \quad \phi(-1.2) \approx 0.1942
解答 (クリックで展開)

求める確率は P(μ=0.5X=0.8)P(\mu = 0.5 | X = 0.8) であり, ベイズの定理を用いると,

P(μ=0.5X=0.8)=f(X=0.8μ=0.5)P(μ=0.5)f(X=0.8)(3.1)P(\mu = 0.5 | X = 0.8) = \frac{f(X = 0.8 | \mu = 0.5) P(\mu = 0.5)}{f(X = 0.8)} \tag{3.1}

となる. ただし, f(Xμ)f(X | \mu) は, 正規分布 N(μ,1)N(\mu, 1) の確率密度関数である :

f(Xμ)=12πexp((Xμ)22)(3.2)f(X | \mu) = \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{(X - \mu)^2}{2}\right) \tag{3.2}

ここで, 標準正規分布 N(0,1)N(0, 1) の確率密度関数を ϕ(z)\phi(z) とすると,

ϕ(z)=12πexp(z22)(3.3)\phi(z) = \frac{1}{\sqrt{2\pi}} \exp\left(-\frac{z^2}{2}\right) \tag{3.3}

と書けるから, 式(3.2)と式(3.3)を比較すると, f(Xμ)=ϕ(Xμ)f(X | \mu) = \phi(X - \mu) が成り立つことが分かる.

これを基に, 各 μ\mu における尤度 f(X=0.8μ)f(X = 0.8 | \mu) を計算すると,

  • μ=0.5\mu = 0.5 のとき : f(X=0.8μ=0.5)=ϕ(0.80.5)=ϕ(0.3)0.3814f(X = 0.8 | \mu = 0.5) = \phi(0.8 - 0.5) = \phi(0.3) \approx 0.3814
  • μ=1\mu = 1 のとき : f(X=0.8μ=1)=ϕ(0.81)=ϕ(0.2)0.3910f(X = 0.8 | \mu = 1) = \phi(0.8 - 1) = \phi(-0.2) \approx 0.3910
  • μ=2\mu = 2 のとき : f(X=0.8μ=2)=ϕ(0.82)=ϕ(1.2)0.1942f(X = 0.8 | \mu = 2) = \phi(0.8 - 2) = \phi(-1.2) \approx 0.1942

となるから, 周辺尤度 f(X=0.8)f(X = 0.8) は,

f(X=0.8)=0.3814×13+0.3910×12+0.1942×16=0.355\begin{align*} f(X = 0.8) &= 0.3814 \times \frac{1}{3} + 0.3910 \times \frac{1}{2} + 0.1942 \times \frac{1}{6} \\ &= 0.355 \end{align*}

したがって, 式(3.1)より,

P(μ=0.5X=0.8)=0.3814×130.355=0.35810.358.P(\mu = 0.5 | X = 0.8) = \frac{0.3814 \times \frac{1}{3}}{0.355} = 0.3581 \cdots \approx \underline{0.358}.

参考文献