朴素贝叶斯分类器
贝叶斯决策论是概率框架下实施决策的基本方法
贝叶斯公式
P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A)=\dfrac{P(A|B)P(B)}{P(A)} P(B∣A)=P(A)P(A∣B)P(B)
对于贝叶斯公式来讲,我们是通过求出先验概率 P ( B ) P(B) P(B) 和类条件概率 P ( A ∣ B ) P(A|B) P(A∣B)来确定后验概率 P ( B ∣ A ) P(B|A) P(B∣A) ,通过估计后验概率的大小来判断事件所属的类别。
举个例子:假设一个班有2/3的学生是男生,有1/3的学生是女生,男生中有3/5的人戴眼镜,女生中有1/5的人戴眼镜。现有一学生戴眼镜,判断此学生是男生还是女生?
由公式可得:
先验概率: P ( 男 ) = 2 / 3 P(男)=2/3 P(男)=2/3 P ( 女 ) = 1 / 3 P(女)=1/3 P(女)=1/3
类条件概率: P ( 戴 ∣ 男 ) = 3 / 5 P(戴|男)=3/5 P(戴∣男)=3/5 P ( 戴 ∣ 女 ) = 1 / 5 P(戴|女)=1/5 P(戴∣女)=1/5
P ( 戴 ) = P ( 男 ) P ( 戴 ∣ 男 ) + P ( 女 ) P ( 戴 ∣ 女 ) = 2 / 3 ∗ 3 / 5 + 1 / 3 ∗ 1 / 5 = 7 / 15 \begin{aligned}P(戴)&=P(男)P(戴|男)+P(女)P(戴|女)\\&=2/3*3/5+1/3*1/5\\&=7/15\end{aligned} P(戴)=P(男)P(戴∣男)+P(女)P(戴∣女)=2/3∗3/5+1/3∗1/5=7/15
后验概率:
P
(
男
∣
戴
)
=
P
(
男
)
P
(
戴
∣
男
)
P
(
戴
)
=
2
/
3
∗
3
/
5
7
/
15
=
6
/
7
\begin{aligned}P(男|戴)=\dfrac{P(男)P(戴|男)}{P{(戴)}}&=\dfrac{2/3*3/5}{7/15}\\&=6/7\end{aligned}
P(男∣戴)=P(戴)P(男)P(戴∣男)=7/152/3∗3/5=6/7
P ( 女 ∣ 戴 ) = P ( 女 ) P ( 戴 ∣ 女 ) P ( 戴 ) = 1 / 3 ∗ 1 / 5 7 / 15 = 1 / 7 \begin{aligned}P(女|戴)=\dfrac{P(女)P(戴|女)}{P{(戴)}}&=\dfrac{1/3*1/5}{7/15}\\&=1/7\end{aligned} P(女∣戴)=P(戴)P(女)P(戴∣女)=7/151/3∗1/5=1/7
因为 P ( 男 ∣ 戴 ) > P ( 女 ∣ 戴 ) P(男|戴)>P(女|戴) P(男∣戴)>P(女∣戴) 故判断此学生为男生
朴素贝叶斯分类
运用贝叶斯思想对数据集进行分类时
换成分类任务的表达式:
P ( 类 别 ∣ 特 征 ) = P ( 特 征 ∣ 类 别 ) P ( 类 别 ) P ( 特 征 ) P(类别|特征)=\dfrac{P(特征|类别)P(类别)}{P(特征)} P(类别∣特征)=P(特征)P(特征∣类别)P(类别)
假设有一个训练集D:
有N种可能的类别: γ = { c 1 , c 2 , . . . , c N } \gamma=\{c_1,c_2,...,c_N\} γ={c1,c2,...,cN}
每个样本有 d d d种特征: X = { x 1 , x 2 , . . . , x d } X=\{x_1,x_2,...,x_d\} X={x1,x2,...,xd}
则对于样本x,我们有:
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|x)=\dfrac{P(c)P(x|c)}{{P(x)}} P(c∣x)=P(x)P(c)P(x∣c)
对于先验概率 P ( c ) P(c) P(c),当有充足的独立同分布的样本时,根据大数定律,可以对先验概率进行估计,令 D c D_c Dc为训练集D中第c类样本的集合。则:
P ( c ) = ∣ D c ∣ ∣ D ∣ P(c)=\dfrac{|D_c|}{|D|} P(c)=∣D∣∣Dc∣
对于类条件概率 P ( x ∣ c ) P(x|c) P(x∣c) ,即 P ( x 1 , x 2 , . . . , x d ∣ c ) P(x_1,x_2,...,x_d|c) P(x1,x2,...,xd∣c) 是在类别c下所有特征的联合概率分布,也就是说当每个特征有二值时,样本空间有 2 d 2^d 2d 种可能,远大于已有训练集,不能直接在训练集中估计。于是朴素贝叶斯的思想是,假设每个特征都独立同分布则:
P ( x ∣ c ) = Π i = 1 d P ( x i ∣ c ) P(x|c)=\Pi_{i=1}^dP(x_i|c) P(x∣c)=Πi=1dP(xi∣c) x i x_i xi表示在样本x上第 i 个特征的取值。
在训练集上:
P ( x i ∣ c ) = ∣ D c x i ∣ ∣ D c ∣ P(x_i|c)=\dfrac{|D_{cx_i}|}{|D_c|} P(xi∣c)=∣Dc∣∣Dcxi∣ D c x i 表 示 在 第 c 类 下 第 i 个 特 征 取 x i 的 样 本 D_{cx_i} 表示在第c类下第 i 个特征取x_i的样本 Dcxi表示在第c类下第i个特征取xi的样本
此时朴素贝叶斯公式表现为:
P ( x ∣ c ) = P ( c ) P ( x ) Π i = 1 d P ( x i ∣ c ) = P ( c ) P ( x ) Π i = 1 d ∣ D c x i ∣ ∣ D c ∣ \begin{aligned}P(x|c)&=\dfrac{P(c)}{P(x)}\Pi_{i=1}^dP(x_i|c)\\&=\dfrac{P(c)}{P(x)}\Pi_{i=1}^d\dfrac{|D_{cx_i}|}{|D_c|}\end{aligned} P(x∣c)=P(x)P(c)Πi=1dP(xi∣c)=P(x)P(c)Πi=1d∣Dc∣∣Dcxi∣
由于类别 c 的取值于 P ( x ) P(x) P(x)无关,于是:
P ( x ∣ c ) ∝ P ( c ) P ( x ∣ c ) P(x|c)\propto P(c)P(x|c) P(x∣c)∝P(c)P(x∣c)
因此朴素贝叶斯的判定准则有:
h n b ( x ) = arg c ∈ γ P ( c ) Π i = 1 d P ( x i ∣ c ) h_{nb}(x)=\arg\limits_{c\in\gamma}P(c)\Pi_{i=1}^dP(x_i|c) hnb(x)=c∈γargP(c)Πi=1dP(xi∣c)
也就是我们要找到一个 c 使样本的后验概率最大,我们就将这个样本判定为 c 类。
在实际情况中,会出现某个特征值与训练集中的某个类同时出现过,这样会使类条件概率为0。为避免其他特征值被未在训练集中出现的特征“抹去”。我们在估计概率值时通常要进行平滑处理。
修正为:
P ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P(c)=\dfrac{|D_c|+1}{|D|+N} P(c)=∣D∣+N∣Dc∣+1
P ( x i ∣ c ) = ∣ D c x i ∣ + 1 ∣ D ∣ + N i P(x_i|c)=\dfrac{|D_{cx_i}|+1}{|D|+N_i} P(xi∣c)=∣D∣+Ni∣Dcxi∣+1
N N N表示整个训练集中可能的特征数, N i N_i Ni表示第 i 个特征可能的取值数。
参考:周志华《机器学习》