朴素贝叶斯
1.正向概率
假如我是一个质检员,现在接到了三箱零件需要检验,其中第一箱有10个零件,第二箱有20个零件,第三箱有15个。半小时过去了,检验的结果出炉,第一箱有1个不合格,第二箱有3个不合格,第三箱2个不合格。
箱子 | 总零件个数 | 不合格 |
---|---|---|
a | 10 | 1 |
b | 20 | 3 |
c | 15 | 2 |
那现在我从这三个箱子中随便拿取一个零件,这个零件是合格的概率是多少呢?
假设事件D为零件合格。
则:
P ( D ) = P ( A ) ∗ P ( D ∣ A ) + P ( B ) ∗ P ( D ∣ B ) + P ( C ) ∗ P ( D ∣ C ) = ( 1 / 3 ) ∗ ( 9 / 10 ) + ( 1 / 3 ) ∗ ( 17 / 20 ) + ( 1 / 3 ) ∗ ( 13 / 15 ) = 0.872 \begin{aligned} P(D)&=P(A)∗P(D∣A)+P(B)∗P(D∣B)+P(C)∗P(D∣C) \\ & =(1/3)∗(9/10)+(1/3)∗(17/20)+(1/3)∗(13/15) \\ &=0.872 \end{aligned} P(D)=P(A)∗P(D∣A)+P(B)∗P(D∣B)+P(C)∗P(D∣C)=(1/3)∗(9/10)+(1/3)∗(17/20)+(1/3)∗(13/15)=0.872
这样一个零件合格的概率就算出来了。但是也有情况是给你一个零件,让你求出它是来自哪个箱子。这就涉及反向概率的问题。
2.反向概率-朴素贝叶斯
现在我们假设这样一个场景:你拿到了一个零件,这个零件是属于哪个箱子?
条件概率
P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} \quad P(A∣B)=P(B)P(AB)
P(A∣B)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率,P(AB)表示事件A、事件B共同发生的概率,P(B)表示事件B发生的概率,这样就计算就是一个条件概率。
如果给我们一个零件,我们知道了这个零件是合格的,那么它是来自A、B、C哪个?具体哪个我们肯定是不知道的,因为A、B、C中都有合格的零件,但是我们可以知道这件合格的零件来自A、B、C的概率是多少,也就是求P(A∣D)、P(B∣D)、P(B∣D)、P(C∣D)、P(C∣D),其中D表示这件零件是合格的概率,由条件概率知道:
P
(
A
∣
D
)
=
P
(
A
∗
D
)
P
(
D
)
)
P(A|D)=\frac{P(A∗D)}{P(D))} \quad
P(A∣D)=P(D))P(A∗D)
P
(
B
∣
D
)
=
P
(
B
∗
D
)
P
(
D
)
)
P(B|D)=\frac{P(B∗D)}{P(D))} \quad
P(B∣D)=P(D))P(B∗D)
P
(
C
∣
D
)
=
P
(
C
∗
D
)
P
(
D
)
)
P(C|D)=\frac{P(C∗D)}{P(D))} \quad
P(C∣D)=P(D))P(C∗D)
其中 P(D)已经在上面计算出来了, P(D)=0.872 , P(A∗D)表示这件零件来自A箱子,并且是合格的概率,两个条件是独立的,所以我们计算为:
P
(
A
∗
D
)
=
P
(
A
)
∗
P
(
D
∣
A
)
=
(
1
/
3
)
∗
(
9
/
10
)
=
0.3
\begin{aligned} P(A∗D)&=P(A)∗P(D∣A) \\ &=(1/3)∗(9/10) \\ & =0.3 \\ \end{aligned}
P(A∗D)=P(A)∗P(D∣A)=(1/3)∗(9/10)=0.3
于是我们可以计算合格商品来自每个箱子的概率:
P
(
A
∣
D
)
=
P
(
A
∗
D
)
/
P
(
D
)
=
0.3
/
0.872
=
0.344
P
(
B
∣
D
)
=
P
(
B
∗
D
)
/
P
(
D
)
=
0.283
/
0.872
=
0.324
P
(
C
∣
D
)
=
P
(
C
∗
D
)
/
P
(
D
)
=
0.289
/
0.872
=
0.332
\begin{aligned} P(A|D)&=P(A*D)/P(D) \\ & =0.3/0.872 \\ & =0.344 \\ P(B|D)&=P(B*D)/P(D) \\ &=0.283/0.872 \\ &=0.324 \\ P(C|D)&=P(C*D)/P(D) \\ & =0.289/0.872 \\ &=0.332 \\ \end{aligned}
P(A∣D)P(B∣D)P(C∣D)=P(A∗D)/P(D)=0.3/0.872=0.344=P(B∗D)/P(D)=0.283/0.872=0.324=P(C∗D)/P(D)=0.289/0.872=0.332
从而知道了合格的零件最可能来自箱子A,因为来自箱子A的概率最高,达到了0.344。
1、假设事件A导致事件D发生的条件概率是:
P ( D ∣ A ) = P ( D ∗ A ) P ( A ) P(D|A)=\frac{P(D*A)}{P(A)} \quad P(D∣A)=P(A)P(D∗A)
所以
P ( D ∗ A ) = P ( D ∣ A ) ∗ P ( A ) P(D*A)=P(D|A)*P(A) \quad P(D∗A)=P(D∣A)∗P(A)
2、现在事件D发生了,可能是事件A导致的,也可能是事件B导致,或者其他事件导致的,我们想知道,是事件A导致的概率,所以,事件D发生是因为事件A导致的条件概率,公式如下:
P ( A ∣ D ) = P ( D ∗ A ) P ( D ) P(A|D)=\frac{P(D*A)}{P(D)} \quad P(A∣D)=P(D)P(D∗A)
将1步骤中的 P ( D ∗ A ) = P ( D ∣ A ) ∗ P ( A ) P(D∗A)=P(D∣A)∗P(A) P(D∗A)=P(D∣A)∗P(A) 代入到本公式中,替换分子 P ( D ∗ A ) P(D∗A) P(D∗A)得到:
P ( A ∣ D ) = P ( D ∣ A ) ∗ P ( A ) P ( D ) P(A|D)=\frac{P(D|A)*P(A)}{P(D)} \quad P(A∣D)=P(D)P(D∣A)∗P(A)
即贝叶斯公式为:
P
(
A
∣
D
)
=
P
(
D
∣
A
)
∗
P
(
A
)
P
(
D
)
P(A|D)=\frac{P(D|A)*P(A)}{P(D)} \quad
P(A∣D)=P(D)P(D∣A)∗P(A)