贝叶斯分类器
1、贝叶斯决策论
贝叶斯决策论是概率框架下实施决策的基本方法,对于分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
以一个多分类任务为例:假设当前有一个 N N N分类问题,即 Y = { c 1 , c 2 , . . . , c N } \mathcal{Y}=\{c_1,c_2,...,c_N\} Y={c1,c2,...,cN}
-
【定义】: λ i j \lambda_{ij} λij是将一个真实标记为 c j c_j cj的样本误分类为 c i c_i ci所产生的损失。
-
【定义】:单个样本 x \pmb{x} xxx的期望损失(条件风险)为
R ( c i ∣ x ) = ∑ j = 1 N λ i j P ( c j ∣ x ) R(c_i|\pmb{x})=\sum_{j=1}^N\lambda_{ij}P(c_j|\pmb{x}) R(ci∣xxx)=j=1∑NλijP(cj∣xxx)
其中, p ( c j ∣ x ) p(c_j|\pmb{x}) p(cj∣xxx)为后验概率。 -
【定义】:全部样本构成的总体风险为
R ( h ) = E x [ R ( h ( x ) ∣ x ) ] R(h)=\mathbb{E}_x[R(h(x)|x)] R(h)=Ex[R(h(x)∣x)]
其中, h h h为分类器(模型)。显然,分类效果越准确的 h h h,其条件风险和总体风险越小。按之前的套路,我们是通过最小化误差来确定 h h h对应的参数,从而得到最优分类器,但这里有所不同,继续往下看可知。
贝叶斯判定准则:为最小化总体风险 R ( h ) R(h) R(h),只需在每个样本上选择那个能使条件风险 R ( c ∣ x ) R(c|\pmb{x}) R(c∣xxx)最小的类别标记,即
h ∗ ( x ) = a r g m i n c ∈ Y R ( c ∣ x ) h^*(x)=\underset{c\in\mathcal{Y}}{argmin}R(c|x) h∗(x)=c∈YargminR(c∣x)
此时, h ∗ h^* h∗称为贝叶斯最优分类器。
从上面可知,最优分类器的函数表示形式即为 a r g m i n c ∈ Y R ( c ∣ x ) \underset{c\in\mathcal{Y}}{argmin}R(c|\pmb{x}) c∈YargminR(c∣xxx),选择条件风险最小的类别作为 x x x的类别,而不是先构造模型,再确认模型最优参数,书上的西瓜例子将会促进理解。
具体地,若目标最小化分类错误率,则误判损失
λ
i
j
\lambda_{ij}
λij可写为
λ
i
j
=
{
0
,
i
f
i
=
j
1
,
i
f
o
t
h
e
r
w
i
s
e
\lambda_{ij}=\left\{ \begin{aligned} &0,\quad if\quad i= j\\ &1,\quad if \quad otherwise \end{aligned} \right.
λij={0,ifi=j1,ifotherwise
此时单个样本
x
\pmb{x}
xxx的期望损失(条件风险)为
R
(
c
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
R
(
c
i
∣
x
)
=
1
∗
P
(
c
1
∣
x
)
+
.
.
.
+
0
∗
P
(
c
i
∣
x
)
+
.
.
.
+
1
∗
P
(
c
N
∣
x
)
R(c_i|\pmb{x})=\sum_{j=1}^N\lambda_{ij}P(c_j|\pmb{x})\\ R(c_i|\pmb{x})=1*P(c_1|\pmb{x})+...+0*P(c_i|\pmb{x})+...+1*P(c_N|\pmb{x})
R(ci∣xxx)=j=1∑NλijP(cj∣xxx)R(ci∣xxx)=1∗P(c1∣xxx)+...+0∗P(ci∣xxx)+...+1∗P(cN∣xxx)
又
∑
j
=
1
N
P
(
c
j
∣
x
)
=
1
\sum_{j=1}^NP(c_j|\pmb{x})=1
∑j=1NP(cj∣xxx)=1,则
R
(
c
i
∣
x
)
=
1
−
P
(
c
i
∣
x
)
R(c_i|\pmb{x})=1-P(c_i|\pmb{x})
R(ci∣xxx)=1−P(ci∣xxx)
于是,按照贝叶斯准则,最小化分类错误率的贝叶斯最优分类器为
h
∗
(
x
)
=
a
r
g
m
i
n
c
∈
Y
R
(
c
∣
x
)
h
∗
(
x
)
=
a
r
g
m
i
n
c
∈
{
1
,
2
,
.
.
.
,
N
}
R
(
c
i
∣
x
)
h
∗
(
x
)
=
a
r
g
m
i
n
c
∈
{
1
,
2
,
.
.
.
,
N
}
1
−
P
(
c
i
∣
x
)
h
∗
(
x
)
=
a
r
g
m
a
x
c
∈
{
1
,
2
,
.
.
.
,
N
}
P
(
c
i
∣
x
)
h
∗
(
x
)
=
a
r
g
m
a
x
c
∈
Y
P
(
c
∣
x
)
h^*(\pmb{x})=\underset{c\in\mathcal{Y}}{argmin}R(c|\pmb{x})\\ h^*(\pmb{x})=\underset{c\in\{1,2,...,N\}}{argmin}R(c_i|\pmb{x})\\ h^*(\pmb{x})=\underset{c\in\{1,2,...,N\}}{argmin}1-P(c_i|\pmb{x})\\ h^*(\pmb{x})=\underset{c\in\{1,2,...,N\}}{argmax}P(c_i|\pmb{x})\\ h^*(\pmb{x})=\underset{c\in\mathcal{Y}}{argmax}P(c|\pmb{x})\\
h∗(xxx)=c∈YargminR(c∣xxx)h∗(xxx)=c∈{1,2,...,N}argminR(ci∣xxx)h∗(xxx)=c∈{1,2,...,N}argmin1−P(ci∣xxx)h∗(xxx)=c∈{1,2,...,N}argmaxP(ci∣xxx)h∗(xxx)=c∈YargmaxP(c∣xxx)
即对每个样本
x
\pmb{x}
xxx,选择后验概率
p
(
c
i
∣
x
)
p(c_i|\pmb{x})
p(ci∣xxx)最大的类别
c
i
c_i
ci作为标记。
2、生成式模型和判别式模型
从贝叶斯决策论(概率框架)的角度:机器学习所要做的就是基于有限的训练样本集尽可能准确地估计出后验概率 P ( c ∣ x ) P(c|\pmb{x}) P(c∣xxx)。
- 判别式模型:给定 x \pmb{x} xxx,直接建模 P ( c ∣ x ) P(c|\pmb{x}) P(c∣xxx)来预测c,如 P ( y ∣ x ) = s i g m o i d ( w T x + b ) P(y|\pmb{x})=sigmoid(w^Tx+b) P(y∣xxx)=sigmoid(wTx+b)。
- 生成式模型:先对联合概率1 P ( x , c ) P(\pmb{x},c) P(xxx,c)建模,然后再由此推导得出 P ( c ∣ x ) P(c|\pmb{x}) P(c∣xxx)
对于生成式模型,其建模思路为
P
(
c
∣
x
)
=
P
(
x
,
c
)
P
(
x
)
P(c|\pmb{x})=\frac{P(\pmb{x},c)}{P(\pmb{x})}
P(c∣xxx)=P(xxx)P(xxx,c)
再根据贝叶斯公式2,上式可恒等变形为
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
P(c|\pmb{x})=\frac{P(c)P(\pmb{x}|c)}{P(\pmb{x})}
P(c∣xxx)=P(xxx)P(c)P(xxx∣c)
其中,
P
(
x
)
P(x)
P(x)是类先验概率,
P
(
x
∣
c
)
P(\pmb{x}|c)
P(xxx∣c)是样本
x
\pmb{x}
xxx相对于类别标记
c
c
c的类条件概率,也是所有属性上的联合概率,
P
(
x
)
P(\pmb{x})
P(xxx)是用于归一化的“证据”因子。
这里难点在于计算 P ( x ∣ c ) P(\pmb{x}|c) P(xxx∣c),当 x \pmb{x} xxx的维数过多时,由概率的乘法公式可得, P ( x ∣ c ) = P ( x 1 x 2 . . x n ∣ c ) = P ( x 1 ∣ c ) P ( x 2 ∣ x 1 c ) . . P ( x n ∣ x 1 . . x n − 1 c ) P(\pmb{x}|c)=P(x_1x_2..x_n|c)=P(x_1|c)P(x_2|x_1c)..P(x_n|x_1..x_{n-1}c) P(xxx∣c)=P(x1x2..xn∣c)=P(x1∣c)P(x2∣x1c)..P(xn∣x1..xn−1c),看着其中的每一项都头疼,更何况去计算,这就会导致所谓的组合爆炸问题。
3、朴素贝叶斯分类器
为了解决上述问题,提出了朴素贝叶斯分类器,其基于属性条件独立性假设:
对已知类别,假设所有属性相互独立。则
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
=
P
(
c
)
p
(
x
)
∏
i
=
1
d
P
(
x
i
∣
c
)
P(c|\pmb{x})=\frac{P(c)P(\pmb{x}|c)}{P(\pmb{x})}=\frac{P(c)}{p(\pmb{x})}\prod_{i=1}^dP(x_i|c)
P(c∣xxx)=P(xxx)P(c)P(xxx∣c)=p(xxx)P(c)i=1∏dP(xi∣c)
其中,
d
d
d为属性数目,
x
i
x_i
xi为
x
\pmb{x}
xxx在第
i
i
i个属性上的取值。基于贝叶斯判定准则
h
∗
(
x
)
=
a
r
g
m
a
x
c
∈
Y
P
(
c
∣
x
)
=
a
r
g
m
a
x
c
∈
Y
P
(
c
)
P
(
x
)
∏
i
=
1
d
P
(
x
i
∣
c
)
h^*(\pmb{x})=\underset{c\in\mathcal{Y}}{argmax}P(c|\pmb{x})=\underset{c\in\mathcal{Y}}{argmax}\frac{P(c)}{P(\pmb{x})}\prod_{i=1}^dP(x_i|c)
h∗(xxx)=c∈YargmaxP(c∣xxx)=c∈YargmaxP(xxx)P(c)i=1∏dP(xi∣c)
由于对所有类别来说
P
(
x
)
P(\pmb{x})
P(xxx)都相同,所以
P
(
x
)
P(\pmb{x})
P(xxx)视作常量可以略去
h
n
b
=
a
r
g
m
a
x
c
∈
Y
P
(
c
)
∏
i
=
1
d
P
(
x
i
∣
c
)
h_{nb}=\underset{c\in\mathcal{Y}}{argmax}P(c)\prod_{i=1}^dP(x_i|c)
hnb=c∈YargmaxP(c)i=1∏dP(xi∣c)
估计
P
(
c
)
P(c)
P(c):
P
(
c
)
=
∣
D
c
∣
∣
D
∣
P(c)=\frac{|D_c|}{|D|}
P(c)=∣D∣∣Dc∣
其中,
D
c
D_c
Dc表示训练集
D
D
D中类别标记为
c
c
c的样本集合,
∣
D
c
∣
|D_c|
∣Dc∣表示集合
D
c
D_c
Dc的样本总数
估计 P ( x i ∣ c ) P(x_i|c) P(xi∣c):
-
【第 i i i个属性为离散属性】:
P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} P(xi∣c)=∣Dc∣∣Dc,xi∣
其中, D c , x i D_{c,x_i} Dc,xi表示 D c D_c Dc中在第 i i i个属性上取值为 x i x_i xi的样本组成的集合 -
【第 i i i个属性为连续属性】(以正态分布假设为例):
p ( x i ∣ c ) = 1 2 π σ c , i e x p ⟮ − ( x i − μ c , i ) 2 2 σ c , i 2 ⟯ p(x_i|c)=\frac{1}{\sqrt{2\pi}\sigma_{c,i}}exp\lgroup-\frac{(x_i-\mu_{c,i})^2}{2\sigma^2_{c,i}}\rgroup p(xi∣c)=2πσc,i1exp⟮−2σc,i2(xi−μc,i)2⟯
其中, μ c , i \mu_{c,i} μc,i和 σ c , i 2 \sigma^2_{c,i} σc,i2分别是第 c c c类样本在第 i i i个属性上取值的均值和方差。
4、半朴素贝叶斯分类器
半朴素贝叶斯分类器:适当考虑一部分属性间的相互依赖信息,从而既不需要进行完全联合概率计算,也不至于彻底忽略了比较强的属性依赖关系。
-
【独依赖估计(ODE)】:假设每个属性在类别之外最多依赖于一个其他属性,即
P ( c ∣ x ) ∝ P ( c ) ∏ i = 1 d P ( x i ∣ c , p a i ) P(c|\pmb{x})\propto P(c)\prod_{i=1}^dP(x_i|c,pa_i) P(c∣xxx)∝P(c)i=1∏dP(xi∣c,pai)
其中, p a i pa_i pai为属性 x i x_i xi所依赖的属性,称为 x i x_i xi的父属性, ∝ \propto ∝表示正比于。 -
【超父独依赖估计(SPODE)】:假设所有属性都依赖于同一个“超父”属性
P ( c ∣ x ) = P ( x , c ) P ( x ) = P ( c , x i ) P ( x 1 , . . . , x i − 1 , x i + 1 , . . . x d ∣ c , x i ) P ( x ) ∝ P ( c , x i ) P ( x 1 , . . . , x i − 1 , x i + 1 , . . . x d ∣ c , x i ) = P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) \begin{aligned} P(c|\pmb{x})&=\frac{P(\pmb{x},c)}{P(\pmb{x})}=\frac{P(c,x_i)P(x_1,...,x_{i-1},x_{i+1},...x_d|c,x_i)}{P(\pmb{x})}\\ &\propto P(c,x_i)P(x_1,...,x_{i-1},x_{i+1},...x_d|c,x_i)\\ &=P(c,x_i)\prod_{j=1}^dP(x_j|c,x_i) \end{aligned} P(c∣xxx)=P(xxx)P(xxx,c)=P(xxx)P(c,xi)P(x1,...,xi−1,xi+1,...xd∣c,xi)∝P(c,xi)P(x1,...,xi−1,xi+1,...xd∣c,xi)=P(c,xi)j=1∏dP(xj∣c,xi)
其中, x i x_i xi为“超父”属性