朴素贝叶斯分类

朴素贝叶斯分类

从名字来看,好像跟统计学里面的贝叶斯公式有关,我个人觉得好像没有什么太大的关系,只是用到里面的一个思想而已,公式应用的意义不大

P(A|B) 

表示在已经发生B的前提下A发生的概率,这就是条件概率

如果两个事件本身是相互独立的,那么两个事件都发生的联合概率就是

P(AB)=P(A)P(B)

如果已经存在一个训练数据集合D,这个集合中存在N条数据,每条数据都有n个属性,所以存在很多种组合

这里就针对某个固定的记录Ni而言对应的额属性存在多属性对应的值,下面针对属性进行对应的计算

思路:

如果在D中多个属性存在多个值,我们选其中值个数最少的属性作为分类,其他属性作为针对这个属性分类的参数.

比如:

# 属性 A B C D E
# 值  a b c d e

那么如果属性E只有两个值e1和e2,分别对应着高手和菜鸟,前面的属性ABCD都是描述性的信息,比如A是C语言水平高级,中级,低级,入门,B是计算机底层知识牛逼,高端,一般,入门,求都不懂…

那么记录就可能存在

N1 a=c语言高级 b=计算机底层知识牛逼 c=python编码大师级 d=算法能力屌爆了

那么我们就有理由将其分为E属性对应的e1值:高手

作为数据集合D中的记录存在有N条数据,这里针对这个D集合进行训练,获取出所有的属性进行针对E属性的分类计算

比如:先只分析A属性

如果A属性存在5个值,在所有的记录中进行统计发现,当E属性为高手的所有记录中,A属性第一个值占有的记录条数为

P(A1|E1) * 所有E属性为高手(E1)的记录条数

其中A1表示A属性的五个值中的第一个,P(A1|E1)就能够表示为在高手中,A属性为A1值的概率

既然A属性有五个值我们就能得到五个概率,同样针对B属性也有同样的计算方式P(B1|E1)的概率,将所有的值对应概率算出来

这还没有完,如果某个人只是C语言高级就能够称为高手么?如果其他方面渣渣的一逼,相信将这种分为高手有失偏颇吧,因此需要联合其他属性的情况作出判断

那么根据数据集D可以得到什么样的ABCD属性值组合被归类为E1:高手

根据这个思路,以及已经求出了在确认为E1的情况下各个属性值出现的概率,那么使用联合概率的计算就能得到某个具体属性值组合是E1的概率

写作:

P(Ai|E1)P(Bi|E1)P(Ci|E1)P(Di|E1)

其中Ai表示A属性的第i个取值,以上就是联合概率,那么总会计算出一个值

同样的也会有E2:菜鸟的属性组合概率值

这些都是在已知的D数据集中进行计算得到的确认值

此时来了个新人X

我们知道这个人的ABCD属性值分别为abcd,

那么在已知的数据集D中已经计算出这种abcd属性值组合对应的在E1下的联合概率P1和在E2下的联合概率P2

如果P2>P1,表明这种属性值的组合被分到E2的概率大于被分到E1的概率

我们就有理由相信这个新人应该属于菜鸟

相反,如果是P1>P2,这就表明这种属性是E1的概率高于E2

我们就有理由相信这个新人是高手

以上就是朴素贝叶斯分类,其实好像并没有用到统计学中的贝叶斯公式,实际需要理解透彻什么是条件概率和联合概率就行了

需要注意的是如果出现某个属性为零的情况,在做乘法的时候会导致结果直接为零,为了避免这种情况,我们在所有的对应属性记录条上进行加一操作,保证每个属性值都存在有一条记录对应,因为数据量很大,这种加一对整个数据的影响可以忽略不计,因此这种方法是可行的,整个方法有个专业的名称–拉普拉斯校准或者拉普拉斯估计法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值