贝叶斯算法c语言,贝叶斯算法及应用

原标题:贝叶斯算法及应用

朴素贝叶斯是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法。

c1f07dd91ac8e7ffed23b603c51558d2.png

基于条件概率的贝叶斯定律数学公式

5495b7be5b99fbe2fe8265173fa16fb9.png

ec72464d3a9165f9c4e1c3c16967aa4b.png

ae3b6da0f308107727f533286b9fe8f0.png

朴素贝叶斯算法 定义

朴素贝叶斯(Naive Bayes,NB)是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法,是一种分类算法;

对应给定的样本X的特征向量x1,x2,……,xm;该样本X的类别y的概率可以由贝叶斯公式得到:

区别

ce0d6e64a6a74c2f509ce00402fdd4ff.png

add870c39f648ed26079239613c83dca.png

KNN分类算法和决策树分类算法最终都是预测出实例的确定的分类结果,但是,有时候分类器会产生错误结果;而朴素贝叶斯分类算法则是给出一个最优的猜测结果,同时给出猜测的概率估计值。

推导

(1)特征属性X之间是独立的,所以得到

8245e556cf827ff9df0c046db3ca98f9.png

(2)优化得

9a98cd7d2ae546f2e2e6b11eba155737.png

(3)因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有

bce92e856b6e0e1c8f1f7f2eaf755903.png

7aad4910e5932e98e3946aa57a9510f5.png

流程

设x={a1,a2,……,am}为待分类项,其中a为x的一个特征属性;

类别集合为C={y1,y2,……,yn};

分别计算P(y1|x),P(y2|x),…….,P(yn|x)的值(贝叶斯公式)

22dd2b3ac2841b0ecab080d4c12bfa17.png

高斯朴素贝叶斯 定义

Gaussian Naive Bayes是指当特征属性为连续值时,而且分布服从高斯分布,那么在计算P(x|y)的时候可以直接使用高斯分布的概率公式,其他的与朴素贝叶斯一致

3308da885a209887ebb88ce3bacbcb53.png

08953af6ac73e15bb97da3026707c3bb.png

伯努利朴素贝叶斯 定义

Bernoulli Naive Bayes是指当特征属性为连续值时,而且分布服从伯努利分布, 那么在计算P(x|y)的时候可以直接使用伯努利分布的概率公式:

伯努利分布是一种离散分布,只有两种可能的结果。1表示成功,出现的概率为p; 0表示失败,出现的概率为q=1-p;其中均值为E(x)=p,方差为Var(X)=p(1-p)

955e2d265b6c8e98b41d59314dccb3df.png

多项式朴素贝叶斯 定义

Multinomial Naive Bayes是指当特征属性服从多项分布(特征是离散的形式的时候),从而,对于每个类别y,每个特征属性都有一个对应的参数 θy=(θy1,θy2,……,θyn),其中n为特征属性的取值数目,那么P(xk=i|y)的概率为θyi。

44e7e0a2e27362d07c6892ee3543d28a.png

举例应用

我们要解决的问题是,网站上有人发布了一条新的采购信息,采购信息的四个特点是采购产品没有在词库中,没有经过手机号校验,没有详情,非会员发布的,需要判断此条采购信息是否真实

准备阶段

确定特征属性x={a1,a2, a3 ,a4}

a1 发布的采购信息产品词是否在我们词库中;

a2 发布信息时是否对手机号进行的短信验证码的校验;

a3 发布的采购信息是否有详情;

a4 发布者是不是网站的会员;

确定类别集合C={y1,y2 }

y1 线索为真实采购;

y2 线索为虚假采购;

获取训练样本

样本数据如下:

49966e1fa786dbd711ea9f763a4e582f.png

训练阶段

下面我将一个一个的进行统计计算(在数据量很大的时候,根据中心极限定理,频率是等于概率的):

(1)对每个类别计算P(y)

9bf6fdbb0568bfff843a5a8550427eb3.png

1. P(y=真实)=6/12(总样本数)=1/2

6bdf15c37e19ef61c9ef2fe25b281664.png

2. P(y=假)=6/12(总样本数)=1/2

(2)对每个特征属性计算所有划分的条件概率P(x | y )

在真实条件下

0b04e4f75e7470fc36679801ec4ff101.png

针对特征有无产品词计算条件概率:

P(x1=有产品词 | y)=1/2

P(x1=没有产品词 | y)=1/2

针对特征是否经过手机号校验计算条件概率:

P(x2=经过校验 | y)=5/6

P(x2=不经过校验 | y)=1/6

针对特征采购详情校验计算条件概率:

P(x3=有详情 | y)=5/6

P(x3=无详情 | y)=1/6

针对特征采购详情校验计算条件概率:

P(x4=会员 | y)=5/6

P(x4=非会员 | y)=1/6

在虚假条件下:

3a9dae33ea07b6392af0f79909c0dba2.png

针对特征有无产品词计算条件概率:

P(x1=有产品词 | y)=2/3

P(x1=没有产品词 | y)=1/3

针对特征是否经过手机号校验计算条件概率:

P(x2=经过校验 | y)=1/2

P(x2=不经过校验 | y)=1/2

针对特征采购详情校验计算条件概率:

P(x3=有详情 | y)=0

P(x3=无详情 | y)=1

针对特征采购详情校验计算条件概率:

P(x4=会员 | y)=1/3

P(x4=非会员 | y)=2/3

应用阶段

目前样本X为(没有在词库中,没有经过手机号校验,没有详情,非会员发布)

(1)计算此条线索为真实的概率

P(xi | y=真实)= P(x1=没有产品词 | y)* P(x2=不经过校验 | y)* P(x3=无详情 | y)* P(x4=非会员 | y)

=1/2*1/6*1/6*1/6

P(y=真实)= 1/2

0308bac36b468152752ec4922b04ae5e.png

(2)计算此条线索为虚假的概率

P(xi | y=虚假)= P(x1=无产品词 | y)* P(x2=不经过校验 | y)* P(x3=无详情 | y)* P(x4=非会员 | y)

P(y=虚假)= 1/2

97c2e7a99ad9eda3f62e304640e44dc9.png

(3)比较P(y =虚假| x1 , x2 , x3 , x4 )与P(y =真实| x1 , x2 , x3 , x4 )大小,选择最大项作为X所属分类,此条线索为虚假

优缺点

优点:算法逻辑简单,易于实现;

缺点:如果特征属性之间相关性较大时,分类效果不好。

本文由 @SincerityY 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议返回搜狐,查看更多

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值