本文是记录在学习朴素贝叶斯的后验概率最大化的推导遇到的一些疑问, 以供参考.
首先, 我们可以知道朴素贝叶斯分类器可以表示为:
y
=
f
(
x
)
=
arg
max
c
k
P
(
Y
=
c
k
)
∏
j
P
(
X
(
j
)
=
x
(
j
)
∣
Y
=
c
k
)
y=f(x)=\arg\max_{c_k}P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)
y=f(x)=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
假设损失函数为:
L
(
Y
,
f
(
X
)
)
L(Y, f(X))
L(Y,f(X)), 所以期望损失函数为:
R
e
x
p
f
(
x
)
=
E
(
L
(
Y
,
f
(
X
)
)
=
∑
x
∈
X
∑
c
k
∈
Y
L
(
y
=
c
k
,
f
(
x
)
)
P
(
X
=
x
,
Y
=
c
k
)
=
∑
x
∈
X
∑
c
k
∈
Y
L
(
y
=
c
k
,
f
(
x
)
)
P
(
Y
=
c
k
∣
X
=
x
)
P
(
X
=
x
)
=
∑
x
∈
X
[
∑
c
k
∈
Y
L
(
y
=
c
k
,
f
(
X
)
)
P
(
Y
=
c
k
∣
X
=
x
)
]
P
(
X
=
x
)
=
E
X
[
∑
c
k
∈
Y
L
(
y
=
c
k
,
f
(
X
)
)
P
(
Y
=
c
k
∣
X
=
x
)
]
\begin{aligned} R_{exp}f(x)&= E(L(Y, f(X)) \\ &= \sum_{x\in X}\sum_{c_k \in Y} L(y=c_k, f(x)) P(X=x, Y=c_k) \\ &= \sum_{x\in X}\sum_{c_k \in Y} L(y=c_k, f(x)) P(Y=c_k|X=x) P(X=x) \\ &= \sum_{x\in X}\bigg[\sum_{c_k \in Y} L(y=c_k, f(X)) P(Y=c_k|X=x)\bigg] P(X=x) \\ &= E_X\bigg[\sum_{c_k \in Y} L(y=c_k, f(X)) P(Y=c_k|X=x)\bigg] \end{aligned}
Rexpf(x)=E(L(Y,f(X))=x∈X∑ck∈Y∑L(y=ck,f(x))P(X=x,Y=ck)=x∈X∑ck∈Y∑L(y=ck,f(x))P(Y=ck∣X=x)P(X=x)=x∈X∑[ck∈Y∑L(y=ck,f(X))P(Y=ck∣X=x)]P(X=x)=EX[ck∈Y∑L(y=ck,f(X))P(Y=ck∣X=x)]
当损失函数是 0-1 损失函数
0
−
1
损失函数
:
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
0-1 损失函数: L(Y, f(X)) = \left\{ \begin{array}{cc} 1, & Y \neq f(X) \\ 0, & Y = f(X) \end{array} \right.
0−1损失函数:L(Y,f(X))={1,0,Y=f(X)Y=f(X)
若预测值 f ( x ) = y f(x) = y f(x)=y, 期望损失函数为 E ( 0 ) = 0 E(0)=0 E(0)=0;
若预测值 f ( x ) ≠ y f(x )\neq y f(x)=y, 期望损失函数为 E X [ ∑ c k ∈ Y P ( y ≠ c k ∣ X = x ) ] E_X\bigg[\sum_{c_k \in Y} P(y \neq c_k|X=x)\bigg] EX[∑ck∈YP(y=ck∣X=x)]
所以最小化期望损失函数就是:
f
(
x
)
=
arg
min
c
k
E
X
[
∑
c
k
∈
Y
P
(
y
≠
c
k
∣
X
=
x
)
]
f(x) =\arg\min_{c_k}E_X\bigg[\sum_{c_k \in Y} P(y \neq c_k|X=x)\bigg]
f(x)=argckminEX[ck∈Y∑P(y=ck∣X=x)]
因为
P
(
x
)
P(x)
P(x)是概率密度函数, 相当于
∑
c
k
∈
Y
P
(
y
≠
c
k
∣
X
=
x
)
\sum_{c_k \in Y} P(y \neq c_k|X=x)
∑ck∈YP(y=ck∣X=x)这一部分的权重,
所以最小化
E
X
[
∑
c
k
∈
Y
P
(
y
≠
c
k
∣
X
=
x
)
]
)
E_X\bigg[\sum_{c_k \in Y} P(y \neq c_k|X=x)\bigg])
EX[∑ck∈YP(y=ck∣X=x)])就相当于对每个
x
x
x求最小化
所以有:
f ( x ) = arg min c k ∑ c k ∈ Y P ( y ≠ c k ∣ X = x ) f(x) =\arg\min_{c_k}\sum_{c_k \in Y} P(y \neq c_k|X=x) f(x)=argckminck∈Y∑P(y=ck∣X=x)
这里的预测值
x
x
x只会属于某一个类别,因此,1减去属于某个类别的概率等价于预测值不属于其他所有类别的概率, 就可以去掉求和符
∑
c
k
∈
Y
\sum_{c_k \in Y}
∑ck∈Y, 得到:
f
(
x
)
=
arg
min
c
k
(
1
−
P
(
y
≠
c
k
∣
X
=
x
)
)
=
arg
max
c
k
P
(
y
=
c
k
∣
X
=
x
)
\begin{aligned} f(x)&=\arg\min_{c_k}(1- P(y \neq c_k|X=x)) \\ &=\arg \max_{c_k}P(y = c_k|X=x) \end{aligned}
f(x)=argckmin(1−P(y=ck∣X=x))=argckmaxP(y=ck∣X=x)
最终, 我们就得到了后验概率最大化准则:
f
(
X
)
=
arg
max
c
k
P
(
y
=
c
k
∣
X
=
x
)
f(X)=\arg \max_{c_k}P(y = c_k|X=x)
f(X)=argckmaxP(y=ck∣X=x)
即选取使后验概率最大的值作为预测值