朴素贝叶斯分类学习总结

写在前面:还是笔记的总结输出,大佬看了笑笑就好


朴素贝叶斯

  • 首先我们在小学二年级就学过先验概率,百度百科给出的解释:先验概率(prior probability)是指根据以往经验和分析得到的概率,个人理解上来说其实先验概率没那复杂,它本质就是一个概率,p(X=x),事件X=x发生的概率,追根溯源计算的方式是用事件X=x发生的次数/总样本事件发生的次数,就是数频数,然而在试题中,一般分子上的先验概率已知,而分母的先验概率一般是通过全概率公式计算得到的,即其先验概率不能直接得到,要通过∑(完备事件组发生的概率×对应的条件概率)计算得到。

  • 后验概率:p(X|H)=在假定事件H发生的条件下,X发生的概率,称为X的后验概率

  • p(X|H) 计算公式 p(X,H) / p(H)。其中p(X,H)为联合概率,从某种程度上来说,通过联合概率计算把计算p(X|H)转化为计算p(H|X),或者简单一点的题目p(H|X)都不用算,直接通过计数的方式把联合概率数出来了。说到底,后验概率计算的本质还是把它都转化先验概率计算问题。

如何理解先验和后验概率,这里给个例子,直接引用下知乎的吧:

如何理解先验概率与后验概率 https://zhuanlan.zhihu.com/p/26464206

朴素贝叶斯分类,假设有属性集U{A1,A2,A3,…,An,C},这里给个图比较好理解,图片来自数据挖掘课本,这里的A1,A2…代表的是attribute(属性),在下面例子中A1代表outlook,A2代表temperature,A3代表humidity,A4代表wind,C代表class(分类),play ball。用tenserflow的角度来看A1,A2,A3,…,An就是feature(输入x),维度是[data_size * n],C对应的就是y(label),用输入x去预测y。
在这里插入图片描述

基本思想

说回朴素贝叶斯分类,给一个未知C的样本X,其中样本X={a1,a2,a3,…,an},(这里A可以是向量,但是为了化简就用小写的a作标量)我们的目标就是为样本X预测C,那我们要求的 C = a r g m a x C i P ( C i ∣ X ) C=argmax_{C_i}P(Ci|X) C=argmaxCiP(CiX),换句话说就是求出使得P(C|X)取得最大值所对应的变量点C,这里的C就作为预测结果,预测一次要计算的次数为class_size次,因为你要找出最大值,你得把所有的类别都算一次,这是基本思想。

计算要点

(p和P都是计算概率的意思,下面一致)

  • 计算 P ( C i ∣ X ) = P ( X ∣ C i ) ⋅ P ( C i ) P ( X ) P(Ci|X)=\frac{P(X|C_i)·P(C_i)}{P(X)} P(CiX)=P(X)P(XCi)P(Ci),为了计算这个式子,朴素贝叶斯作了独立性假设的前提,即p(X) = p(x1,x2,x3…,xn)=p(x1)p(x2)…p(xn),那么用小学二年级计算知识 P ( X ∣ C i ) = Π j = 1 n p ( x j ∣ C i ) P(X|C_i) = Π_{j=1}^np(x_j|C_i) P(XCi)=Πj=1np(xjCi)
  • 如何计算P(Ci|X)还是会遇到的一个问题就是如何计算p(x|C),这要分两种情况讨论,一个是离散型,离散型的话就比较简单了,直接数就行了,计算数据集中属性为x并且类别为C的样本点的个数/类别为C的样本点的个数,但如果是数值型,朴素贝叶斯分类做出了第二个假设:属性服从高斯分布,公式太长不好打,放图了

在这里插入图片描述

伪代码

伪代码来自课本
在这里插入图片描述

拉普拉斯平滑处理

laplace估计,主要是用来解决条件概率为0的问题,在计算条件概率P(X|Y),分母+l,分子+l*p,l为等价样本大小的参数(一般l取原本分母的值),p为用户指定参数,用户进行调节。其实在深度学习中常用的还是分子+1,分母+对应类别样本数

对数解决溢出为0

因为概率过于的小同时要进行累乘,计算机计算后会发现结果为0,某种程度上来说,我们计算贝叶斯分类最终目的不是得到真实值是多少,而是比较哪一个为最大值,为了解决溢出为0的问题可以采取的措施是在计算后验概率前面加log,由累乘转化为累加,进而解决溢出问题,机器学习的loss函数、语言模型概率计算都用了这个处理。

小结

优点:容易实现,大多数情况下效果较好
缺点:假设前提是满足独立性和高斯分布,而在实际情况中会更为复杂。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值