监督学习_朴素贝叶斯分类

[TOC]

朴素贝叶斯分类(Naive Bayesian)

贝叶斯定理是关于随机事件A和B的条件概率的一则定理。

通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A(发生)的条件下的概率是不一样的,但它们两者之间是有确定的关系的,贝叶斯定理陈述了这个关系。

贝叶斯定理的一个主要应用为贝叶斯推理,它是一种建立在主观判断基础之上的推理方法,也就是说,你只需要先预估一个值,然后再去根据实际结果去不断修正,不需要任何客观因素。

这种推理方式需要大量的计算,因此一直遭到其他人的诟病,无法得到广泛的应用,直到计算机的高速发展,并且人们发现很多事情都是无法事先进行客观判断的,因此贝叶斯推理才得以东山再起。

新手入门:带你搞懂朴素贝叶斯分类算法

贝叶斯定理

P(AB)=P(BA)P(A)P(B)P(A|B)=\frac{P(B|A)P(A)}{P(B)}
  • P(AB)P(A|B): 在BB条件下的事件AA的概率,在贝叶斯定理中,条件概率也被称为后验概率,即在事件BB发生之后,我们对事件AA概率的重新评估。

  • P(BA)P(B|A): 在AA条件下的事件BB的概率,与上一条同理。

  • P(A)P(A)P(B)P(B)被称为先验概率(也被称为边缘概率),即在事件BB发生之前,对事件AA概率的一个推断(不考虑任何事件BB方面的因素),后面同理。

  • P(BA)P(B)\frac{P(B|A)}{P(B)}被称为标准相似度,它是一个调整因子,主要是为了保证预测概率更接近真实概率。

根据这些术语,贝叶斯定理表述为:后验概率=标准相似度先验概率后验概率=标准相似度*先验概率

全概率公式

全概率公式是将边缘概率与条件概率关联起来的基本规则,它表示了一个结果的总概率

可以通过几个不同的事件来实现 全概率公式将对一复杂事件的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题

P(B)=i=1nP(Ai)P(BAi)P(B)=\sum_i=1{}^{n}{P(A_{i})P(B|A_i)}

假定一个样本空间SS,它是两个事件AACC之和,同时事件BB与它们两个都有交集,如下图所示:

那么事件BB的概率可以表示为P(B)=P(BA)+P(BC)P(B)=P(B \cap A)+P(B \cap C)

通过条件概率,可以推断出P(BA)=P(BA)P(A)P(B \cap A)=P(B|A)P(A),所以P(B)=P(BA)P(A)+P(BC)P(C)P(B)=P(B|A)P(A)+P(B|C)P(C)

这就是全概率公式,即事件B的概率等于事件A与事件C的概率分别乘以B对这两个事件的条件概率之和

流程步骤

输入:训练数据T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1 ),(x_2,y_2 ),...,(x_N,y_N )\},其中xi=(xi(1),xi(2),...,xi(N))Tx_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(N)})^Txi(j)x_i^{(j)}是第i样本的第jj个特征,xi(j){aj1,aj2,...,ajSj}x_i^{(j)} \in \{ a_{j1},a_{j2},...,a_{jS_j} \}ajla_{jl}是第jj个特征可能取的第ll个值,j1,2,...,nj=1,2,...,nl1,2,...,Sjl=1,2,...,S_jyi{c1,c2,...cK}y_i \in \{c_1,c_2,...c_K \};实例xx

输出:实例xx的分类

  1. 计算先验概率及条件概率

P(Y=ck)=i=1NI(yi=ck)N,k=1,2,...,KP(X(j)=ajlY=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck)j=1,2,...n;l=1,2,...,Sj;k=1,2,...,KP(Y=c_k)=\frac{\sum_{i=1}^{N}{I(y_i=c_k)}}{N},k=1,2,...,K \\ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^{N}{I(x_i^{(j)}=a_{jl},y_i=c_k)}}{\sum_{i=1}^{N}{I(y_i=c_k)}} \\ j=1,2,...n;l=1,2,...,S_j;k=1,2,...,K
  1. 对于给定的实例x(x(1),x(2),...,x(n))Tx=(x^{(1)},x^{(2)},...,x^{(n)})^T,计算

P(Y=ck)j=1nP(X(j)=x(j)Y=ck),k=1,2,...,KP(Y=c_k)\prod_{j=1}^{n}{P(X^{(j)}=x^{(j)}|Y=c_k}),k=1,2,...,K
  1. 确定实例xx的类

y=argmaxckP(Y=ckj=1nP(X(j)=x(j)Y=ck)y=\arg\max_{c_k}P(Y=c_k\prod_{j=1}^{n}{P(X^{(j)}=x^{(j)}|Y=c_k)}

例子

Example1: 假设有两家工厂生产并对外提供电灯泡

工厂X生产的电灯泡在99%的情况下能够工作超过5000 小时,

工厂Y生产的电灯泡在95%的情况下能够工作超过5000小时。

工厂X在市场的占有率为60%,工厂Y为40%,

如何推测出购买的灯泡的工作时间超过5000小时的概率是多少呢?

运用全概率公式,可以得出:

Pr(A)=Pr(ABx).Pr(Bx)+Pr(ABy).Pr(By)=99100.610+95100.410=9741000Pr(A)=Pr(A|B_x).Pr(B_x)+Pr(A|B_y).Pr(B_y)=\frac{99}{100}.\frac{6}{10}+\frac{95}{100}.\frac{4}{10}=\frac{974}{1000}
  • Pr(Bx)=610Pr(B_x)=\frac{6}{10}: 购买到工厂X制造的电灯泡的概率。

  • Pr(By)=410Pr(B_y)=\frac{4}{10}: 购买到工厂y制造的电灯泡的概率。

  • Pr(ABx)=99100Pr(A|B_x)=\frac{99}{100}: 工厂x制造的电灯泡工作时间超过5000小时的概率。

  • Pr(ABy)=95100Pr(A|B_y)=\frac{95}{100} : 工厂y制造的电灯泡工作时间超过5000小时的概率。

因此,可以得知购买一个工作时间超过5000小时的电灯泡的概率为97.4%。

Example2: 试由表的训练数据学习一个朴素贝叶斯分类器并确定x(2,S)Tx=(2,S)^T的类标记yy

表中X(1)X^{(1)}X(2)X^{(2)}为特征,取值集合分别为A1{1,2,3}A_1=\{1,2,3\} A2{S,M,L}A_2=\{S,M,L\}YY为类标记,YC={1,1}Y \in C =\{1,-1\}

123456789101112131415

x(1)x^{(1)}

1

1

1

1

1

2

2

2

2

2

3

3

3

3

3

x(2)x^{(2)}

S

M

M

S

S

S

M

M

L

L

L

M

M

L

L

YY

-1

-1

1

1

-1

-1

-1

1

1

1

1

1

1

1

-1

 根据算法,由表容易计算下列概率:

P(Y=1)=1017,P(Y=1)=717P(X(1)=1Y=1)=312,P(X(1)=2Y=1)=412,P(X(1)=3Y=1)=512P(X(2)=SY=1)=212,P(X(2)=MY=1)=512,P(X(2)=LY=1)=512P(X(1)=1Y=1)=49,P(X(1)=2Y=1)=39,P(X(1)=3Y=1)=29P(X(2)=SY=1)=49,P(X(2)=MY=1)=39,P(X(2)=LY=1)=29P(Y=1)=\frac{10}{17},P(Y=-1)=\frac{7}{17} \\ P(X^{(1)}=1|Y=1)=\frac{3}{12},P(X^{(1)}=2|Y=1)=\frac{4}{12},P(X^{(1)}=3|Y=1)=\frac{5}{12} \\ P(X^{(2)}=S|Y=1)=\frac{2}{12},P(X^{(2)}=M|Y=1)=\frac{5}{12},P(X^{(2)}=L|Y=1)=\frac{5}{12} \\ P(X^{(1)}=1|Y=-1)=\frac{4}{9},P(X^{(1)}=2|Y=-1)=\frac{3}{9},P(X^{(1)}=3|Y=-1)=\frac{2}{9} \\ P(X^{(2)}=S|Y=-1)=\frac{4}{9},P(X^{(2)}=M|Y=-1)=\frac{3}{9},P(X^{(2)}=L|Y=-1)=\frac{2}{9}

对于给定的x(2,S)Tx=(2,S)^T计算:

P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=915.39.19=145P(Y=1)P(X(1)=2Y=1)P(X(2)=SY=1)=615.26.36=115P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{9}{15}.\frac{3}{9}.\frac{1}{9}=\frac{1}{45} \\ P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{6}{15}.\frac{2}{6}.\frac{3}{6}=\frac{1}{15}

因为P(Y1)P(X(1)2Y1)P(X(2)SY1)P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)最大,所以y1y=-1

朴素贝叶斯的概率模型

我们设一个待分类项X=f1,f2,...,fnX=f_1,f_2,...,f_n,其中每个ffxx的一个特征属性,然后设一个类别集合C1,C2,...,CmC_1, C_2,...,C_m

然后需要计算P(C1X),P(C2X),...,P(CmX)P(C_1|X),P(C_2|X),...,P(C_m|X),我们可以根据一个训练样本集合(已知分类的待分类项集合),然后统计得到在各类别下各个特征属性的条件概率:

P(f1C1),P(f1C1),...P(fnC1),...,P(f1C2),P(f2C2),...P(fnC2,...,P(f1Cm),P(f2Cm),...,P(fnCm),P(f_1|C_1),P(f_1|C_1),...P(f_n|C_1),...,P(f_1|C_2),P(f_2|C_2), \\ ...P(f_n|C_2,...,P(f_1|C_m),P(f_2|C_m),...,P(f_n|C_m),

如果P(CkX)=MAX(P(C1X),P(C2X),...,P(CmlX))P(C_k|X)=MAX(P(C_1|X),P(C_2|X),...,P(C_mlX)),则XCkX \in C_k(贝叶斯分类其实就是取概率最大的那一个)。 朴素贝叶斯会假设每个特征都是独立的,根据贝叶斯定理可推得:

PCiX)=P(XCi)P(Ci)P(X)P(C_i|X)=\frac{P(X|C_i)P(C_i)}{P(X)}

由于分母对于所有类别为常数,因 此只需要将分子最大化即可,又因为各特征是互相独立的,所以最终推得:

P(XCi)P(Ci)=P(f1Ci)P(f2Ci),...,P(fnCi)P(Ci)=P(Ci)j=1nP(fjCi)P(X|C_i)P(C_i)=P(f_1|C_i)P(f_2|C_i),...,P(f_n|C_i)P(C_i)=P(C_i)\prod_{j=1}^{n}{P(f_j|C_i)}

Last updated