朴素贝叶斯分类器

朴素贝叶斯分类器

贝叶斯公式

 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(cx)=P(x)P(c)P(xc)(1)

前提假设:

 为了方便计算 P ( x ∣ c ) P(x|c) P(xc),朴素贝叶斯分类器采用了一个假设:**对已知类别,假设所有属性相互独立。**基于这个假设,式(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(cx)=P(x)P(c)P(xc)=P(x)P(c)i=1dP(xic)
其中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(cx)最大的类别标记有:
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)=argcymaxP(c)i=1dP(xic)
 一句话概括:朴树贝叶斯分类器的训练过程就是用训练集 D D D估计先验概率 P ( c ) P(c) P(c),为每个属性估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xic)
 令 D c D_c Dc表示第 D D D的第 c c c类样本子集,则估计先验概率
P ( c ) = ∣ D c ∣ ∣ D ∣ P(c) = \frac{|D_c|}{|D|} P(c)=DDc
 对于离散属性,令 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(xic)=DcDc,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 3040
4 ≥ 41 \ge41 41
5 ≥ 41 \ge41 41
6 ≥ 41 \ge41 41
7 30 ∼ 40 30\sim40 3040
8 ≤ 30 \le30 30
9 ≤ 30 \le30 30
10 ≥ 41 \ge41 41
11 ≤ 30 \le30 30
12 30 ∼ 40 30\sim40 3040
13 30 ∼ 40 30\sim40 3040
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(xic)
P 年 龄 ≤ 30 ∣ 购 买 计 算 机 = 是 = 2 9 = 0.22 P_{年龄\le30|购买计算机=是}=\frac{2}{9}=0.22 P30==92=0.22
P 年 龄 ≤ 30 ∣ 购 买 计 算 机 = 否 = 3 5 = 0.60 P_{年龄\le30|购买计算机=否}=\frac{3}{5}=0.60 P30==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(=)×P30=×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(=)×P30=×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+NDc+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 (xic)=Dc+NiDc,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

posted @ 2019-11-13 21:36  消灭猕猴桃  阅读(271)  评论(0编辑  收藏  举报