朴素贝叶斯

1. 概念

朴素贝叶斯是基于贝叶斯定理特征条件独立性假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出 的联合概率分布;然后基于此模型,对于给定输入 x x ,利用贝叶斯定理求出后验概率最大的输出 y.

2. 基本方法

使用朴素贝叶斯法分类时,对给定的输入x,我们想知道其属于 ck c k 的概率,即:
P(Y=ck|X=x)=P(Y=ck|X(1)=x(1),....,X(n)=x(n)) P ( Y = c k | X = x ) = P ( Y = c k | X ( 1 ) = x ( 1 ) , . . . . , X ( n ) = x ( n ) )

贝叶斯定理告诉我们:
P(A|B)=P(B|A)P(A)P(B) P ( A | B ) = P ( B | A ) ⋅ P ( A ) P ( B )
由此我们可以得到:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)P(X=x) P ( Y = c k | X = x ) = P ( X = x | Y = c k ) ⋅ P ( Y = c k ) P ( X = x )


也就是说,只要我们知道 P(X=x|Y=ck)P(Y=ck) P ( X = x | Y = c k ) , P ( Y = c k ) 以及 P(X=x) P ( X = x ) ,那么我们就可以求出P(Y=ck|X=x)的值.那么该如何获得这三个概率值呢?带着这个疑问,我们首先给出朴素贝叶斯法的条件独立性假设:
P(X=x|Y=ck)=P(X(1)=x(1),.,X(n)=x(n)|Y=ck)=nj=1P(X(j)=x(j)|Y=ck) P ( X = x | Y = c k ) = P ( X ( 1 ) = x ( 1 ) , … . , X ( n ) = x ( n ) | Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )

这个假设告诉我们,每个类别的样本的各个特征之间是相互独立的,因此在计算的时候我们就可以将其拆成连乘的形式。由于这是一个较强的假设,朴素贝叶斯算法也由此得名。


接下来,我们将分别求出上文提到的三个概率: P(X=x|Y=ck) P ( X = x | Y = c k ) P(Y=ck) P ( Y = c k ) 以及 P(X=x) P ( X = x )

假设训练数据集为:
T=(x1,y1),(x2,y2),....(xN,yN) T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . . ( x N , y N )
首先由上文我们已经知道:
P(X=x|Y=ck)==nj=1P(X(j)=x(j)|Y=ck) P ( X = x | Y = c k ) == ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )
假设在训练集T中,类别为 ck c k 的样本个数为 Nk N k ,在类别为 ck c k 的所有样本中 X(j)=x(j) X ( j ) = x ( j ) 的样本个数为 njk n j k ,那么.
P(X(j)=x(j)|Y=ck)=njkNk P ( X ( j ) = x ( j ) | Y = c k ) = n j k N k
进一步:
P(X=x|Y=ck)=nj=1njkNk P ( X = x | Y = c k ) = ∏ j = 1 n n j k N k

最后,我们来求P(X=x)的值。

P(X=x)=kP(X=x,Y=ck)=kP(X=x|Y=ck)P(Y=ck) P ( X = x ) = ∑ k P ( X = x , Y = c k ) = ∑ k P ( X = x | Y = c k ) ⋅ P ( Y = c k )

P(X=x)=kP(Y=ck)nj=1P(X(j)=x(j)|Y=ck) P ( X = x ) = ∑ k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )
我们注意到,求解 P(Y=ck|X=x) P ( Y = c k | X = x ) 时,我们给定一个输入x,对于不同的类别 ck c k ,P(X=x)的值是相同的,也就是说它的值不会影响我们对于输入实例属于某个类别的判定,因此我们只需设定


由此我们可以得到
P(Y=ck|X=x)=P(Y=ck)nj=1P(X(j)=x(j)|Y=ck) P ( Y = c k | X = x ) = P ( Y = c k ) ⋅ ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )
对于给定的输入x,要知道其属于哪个类别,只需求出每个类别下的概率P(Y=ck|X=x),然后找出概率最大的类别,那么输入实例就属于这个类别。

3. 实验

这里写图片描述

类标记y的取值就两个:1或-1,要确定 x=(2,S)T x = ( 2 , S ) T 的类标记,我们只需求 P(Y=1|X=(2,S)T) P ( Y = 1 | X = ( 2 , S ) T ) P(Y=1|X=(2,S)T) P ( Y = − 1 | X = ( 2 , S ) T ) 的概率,然后比较两者大小即可确定。

P(Y=1)=615 P ( Y = − 1 ) = 6 15
P(Y=1)=915 P ( Y = 1 ) = 9 15
P(X(1)=2|Y=1)=39 P ( X ( 1 ) = 2 | Y = 1 ) = 3 9
P(X(2)=S|Y=1)=19 P ( X ( 2 ) = S | Y = 1 ) = 1 9
P(X(1)=2|Y=1)=26 P ( X ( 1 ) = 2 | Y = − 1 ) = 2 6
P(X(2)=S|Y=1)=36 P ( X ( 2 ) = S | Y = − 1 ) = 3 6
所以
P(Y=1|X=(2,S)T)=9153919=145 P ( Y = 1 | X = ( 2 , S ) T ) = 9 15 ⋅ 3 9 ⋅ 1 9 = 1 4 5
P(Y=1|X=(2,S)T)=6152636=115 P ( Y = − 1 | X = ( 2 , S ) T ) = 6 15 ⋅ 2 6 ⋅ 3 6 = 1 1 5
因为 P(Y=1|X=(2,S)T)<P(Y=1|X=(2,S)T) P ( Y = 1 | X = ( 2 , S ) T ) < P ( Y = − 1 | X = ( 2 , S ) T )
所以x=(2,S)T的类标记为-1。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值