朴素贝叶斯分类器
朴素贝叶斯分类器
贝叶斯公式
x代表样本,c代表已知类别
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
(
1
)
P(c|x) = \frac{P(c)P(x|c)}{P(x)}\qquad(1)
P(c∣x)=P(x)P(c)P(x∣c)(1)
前提假设:
为了方便计算
P
(
x
∣
c
)
P(x|c)
P(x∣c),朴素贝叶斯分类器采用了一个假设:**对已知类别,假设所有属性相互独立。**基于这个假设,式(1)可重写为:
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
=
P
(
c
)
P
(
x
)
∏
i
=
1
d
P
(
x
i
∣
c
)
P(c|x)= \frac{P(c)P(x|c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_i|c)
P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)i=1∏dP(xi∣c)
其中d为属性的数目,
x
i
x_i
xi为
x
x
x在第
i
i
i个属性上的取值。
朴素贝叶斯分类器表达式
由于对所有类别来说
P
(
x
)
P(x)
P(x)相同,根据贝叶斯判定准则:对每个样本
x
x
x选择能使后验概率
P
(
c
∣
x
)
P(c|x)
P(c∣x)最大的类别标记有:
h
n
b
(
x
)
=
a
r
g
c
∈
y
m
a
x
P
(
c
)
∏
i
=
1
d
P
(
x
i
∣
c
)
h_{nb}(x) = arg_{c \in y}maxP(c)\prod_{i=1}^{d}P(x_i|c)
hnb(x)=argc∈ymaxP(c)i=1∏dP(xi∣c)
一句话概括:朴树贝叶斯分类器的训练过程就是用训练集
D
D
D估计先验概率
P
(
c
)
P(c)
P(c),为每个属性估计条件概率
P
(
x
i
∣
c
)
P(x_i|c)
P(xi∣c)。
令
D
c
D_c
Dc表示第
D
D
D的第
c
c
c类样本子集,则估计先验概率
P
(
c
)
=
∣
D
c
∣
∣
D
∣
P(c) = \frac{|D_c|}{|D|}
P(c)=∣D∣∣Dc∣
对于离散属性,令
D
c
,
x
i
D_{{c},{x_i}}
Dc,xi表示集合
D
c
D_c
Dc第
i
i
i个属性值为
x
i
x_i
xi的子集,则条件概率
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 D D ,年龄 、收入、学生、信誉为属性, d = 4 d=4 d=4,购买计算机为类别,类别数 y = 2 y=2 y=2
编号 | 年龄 | 收入 | 学生 | 信誉 | 购买计算机 |
---|---|---|---|---|---|
1 | ≤ 30 \le30 ≤30 | 高 | 否 | 中 | 否 |
2 | ≤ 30 \le30 ≤30 | 高 | 否 | 优 | 否 |
3 | 30 ∼ 40 30\sim40 30∼40 | 高 | 否 | 中 | 是 |
4 | ≥ 41 \ge41 ≥41 | 中 | 否 | 中 | 是 |
5 | ≥ 41 \ge41 ≥41 | 低 | 是 | 中 | 是 |
6 | ≥ 41 \ge41 ≥41 | 低 | 是 | 优 | 否 |
7 | 30 ∼ 40 30\sim40 30∼40 | 低 | 是 | 优 | 是 |
8 | ≤ 30 \le30 ≤30 | 中 | 否 | 中 | 否 |
9 | ≤ 30 \le30 ≤30 | 低 | 是 | 中 | 是 |
10 | ≥ 41 \ge41 ≥41 | 中 | 是 | 中 | 是 |
11 | ≤ 30 \le30 ≤30 | 中 | 是 | 优 | 是 |
12 | 30 ∼ 40 30\sim40 30∼40 | 中 | 否 | 优 | 是 |
13 | 30 ∼ 40 30\sim40 30∼40 | 高 | 是 | 中 | 是 |
14 | ≥ 41 \ge41 ≥41 | 中 | 否 | 优 | 否 |
下面是一个测试样本 x x x,判断是否购买计算机
编号 | 年龄 | 收入 | 学生 | 信誉 | 购买计算机 |
---|---|---|---|---|---|
1 | ≤ 30 \le30 ≤30 | 中 | 是 | 中 | ? |
首先计算先验概率
P
(
c
)
P(c)
P(c),有:
P
(
购
买
计
算
机
=
是
)
=
9
14
=
0.64
P(购买计算机= 是) = \frac{9}{14}=0.64
P(购买计算机=是)=149=0.64
P
(
购
买
计
算
机
=
否
)
=
5
14
=
0.36
P(购买计算机= 否) = \frac{5}{14}=0.36
P(购买计算机=否)=145=0.36
再为每个属性估计条件概率
P
(
x
i
∣
c
)
P(x_i|c)
P(xi∣c)
P
年
龄
≤
30
∣
购
买
计
算
机
=
是
=
2
9
=
0.22
P_{年龄\le30|购买计算机=是}=\frac{2}{9}=0.22
P年龄≤30∣购买计算机=是=92=0.22
P
年
龄
≤
30
∣
购
买
计
算
机
=
否
=
3
5
=
0.60
P_{年龄\le30|购买计算机=否}=\frac{3}{5}=0.60
P年龄≤30∣购买计算机=否=53=0.60
P
收
入
=
中
∣
购
买
计
算
机
=
是
=
4
9
=
0.44
P_{收入=中|购买计算机=是}=\frac{4}{9}=0.44
P收入=中∣购买计算机=是=94=0.44
P
收
入
=
中
∣
购
买
计
算
机
=
否
=
2
5
=
0.40
P_{收入=中|购买计算机=否}=\frac{2}{5}=0.40
P收入=中∣购买计算机=否=52=0.40
P
学
生
=
是
∣
购
买
计
算
机
=
是
=
6
9
=
0.67
P_{学生=是|购买计算机=是}=\frac{6}{9}=0.67
P学生=是∣购买计算机=是=96=0.67
P
学
生
=
是
∣
购
买
计
算
机
=
否
=
1
5
=
0.20
P_{学生=是|购买计算机=否}=\frac{1}{5}=0.20
P学生=是∣购买计算机=否=51=0.20
P
信
誉
=
中
∣
购
买
计
算
机
=
是
=
6
9
=
0.67
P_{信誉=中|购买计算机=是}=\frac{6}{9}=0.67
P信誉=中∣购买计算机=是=96=0.67
P
信
誉
=
中
∣
购
买
计
算
机
=
否
=
2
5
=
0.40
P_{信誉=中|购买计算机=否}=\frac{2}{5}=0.40
P信誉=中∣购买计算机=否=52=0.40
所以根据朴素贝叶斯分类器表达式有:
P
(
购
买
计
算
机
=
是
)
×
P
年
龄
≤
30
∣
购
买
计
算
机
=
是
×
P
收
入
=
中
∣
购
买
计
算
机
=
是
×
P
学
生
=
是
∣
购
买
计
算
机
=
是
×
P
信
誉
=
中
∣
购
买
计
算
机
=
是
≈
0.03
P(购买计算机=是)\times P_{年龄\le30|购买计算机=是} \times P_{收入=中|购买计算机=是} \\ \times P_{学生=是|购买计算机=是}\times P_{信誉=中|购买计算机=是}\approx 0.03
P(购买计算机=是)×P年龄≤30∣购买计算机=是×P收入=中∣购买计算机=是×P学生=是∣购买计算机=是×P信誉=中∣购买计算机=是≈0.03
P
(
购
买
计
算
机
=
否
)
×
P
年
龄
≤
30
∣
购
买
计
算
机
=
否
×
P
收
入
=
中
∣
购
买
计
算
机
=
否
×
P
学
生
=
是
∣
购
买
计
算
机
=
否
×
P
信
誉
=
中
∣
购
买
计
算
机
=
否
≈
0.01
P(购买计算机=否)\times P_{年龄\le30|购买计算机=否} \times P_{收入=中|购买计算机=否} \\ \times P_{学生=是|购买计算机=否}\times P_{信誉=中|购买计算机=否}\approx 0.01
P(购买计算机=否)×P年龄≤30∣购买计算机=否×P收入=中∣购买计算机=否×P学生=是∣购买计算机=否×P信誉=中∣购买计算机=否≈0.01
由于 0.03>0.01,所以朴素贝叶斯分类器将测试样本
x
x
x判别为“购买计算机 = 是”。
拉普拉斯修正(Laplacian correction)
如果有一个测试样本的属性“信誉 = 低”,那么条件概率
P
(
信
誉
=
低
∣
购
买
计
算
机
=
是
)
=
0
9
=
0
P(信誉 = 低 | 购买计算机=是) = \frac{0}{9}=0
P(信誉=低∣购买计算机=是)=90=0,即使其他属性明显是“购买计算机= 是”,但分类结果都将是“购买计算机 = 否”。为了避免测试样本中其他属性信息被训练集中未出现的属性值“抹去”,可用拉普拉斯修正。
令
N
N
N表示训练集
D
D
D中可能的类别数,
N
i
N_i
Ni表示第
i
i
i个属性的取值数则
先验概率为
P
^
(
c
)
=
∣
D
c
∣
+
1
∣
D
∣
+
N
\widehat P(c)=\frac{|D_c|+1}{|D|+N}
P
(c)=∣D∣+N∣Dc∣+1
后验概率为
P
^
(
x
i
∣
c
)
=
∣
D
c
,
x
i
∣
+
1
∣
D
c
∣
+
N
i
\widehat P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i}
P
(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
例如上文例子中,先验概率可以估计为:
P
^
(
购
买
计
算
机
=
是
)
=
9
+
1
14
+
2
=
0.625
\widehat P(购买计算机= 是) = \frac{9+1}{14+2}=0.625
P
(购买计算机=是)=14+29+1=0.625
P
^
(
购
买
计
算
机
=
否
)
=
5
+
1
14
+
2
=
0.375
\widehat P(购买计算机= 否) = \frac{5+1}{14+2}=0.375
P
(购买计算机=否)=14+25+1=0.375
后验概率可以估计为:
P
(
年
龄
≤
30
∣
购
买
计
算
机
=
是
)
=
2
+
1
9
+
3
=
0.25
P(年龄\le30|购买计算机=是)=\frac{2+1}{9+3}=0.25
P(年龄≤30∣购买计算机=是)=9+32+1=0.25
P
(
信
誉
=
低
∣
购
买
计
算
机
=
是
)
P(信誉 = 低 | 购买计算机=是)
P(信誉=低∣购买计算机=是)可以估计为:
P
(
信
誉
=
低
∣
购
买
计
算
机
=
是
)
=
0
+
1
9
+
3
=
0.083
P(信誉 = 低 | 购买计算机=是) = \frac{0+1}{9+3}=0.083
P(信誉=低∣购买计算机=是)=9+30+1=0.083