西瓜书 习题7.3 朴素贝叶斯分类器+拉普拉斯修正

本文介绍了使用朴素贝叶斯分类器进行预测,并结合拉普拉斯修正来处理零频率问题。作者分享了自己的原创代码,通过记忆化搜索优化计算效率,并在实践中发现西瓜书中的一个计算错误,指出正确概率应为0.625而非0.750,这影响了后续计算的准确性。采用log累加法避免了小数下溢和精度损失问题。
摘要由CSDN通过智能技术生成

Naive Bayes Classifier with Laplacian correction

数据和代码在我的git上,原创代码:

https://github.com/qdbszsj/NBC

朴素贝叶斯分类器,用的贝叶斯定理(这不是废话),举个例子,说白了就是:绿瓜是好瓜的概率=所有好瓜里的绿瓜个数/所有绿瓜个数。假如一个瓜是绿的,还很清脆,那么这个瓜是好瓜的概率就是P(绿瓜是好瓜)*P(清脆瓜是好瓜),前面再乘一个好瓜坏瓜的权重,同理求出坏瓜的对应值,然后比较一下,取最大的那个(西瓜书p151,公式7.15)

这里的那个函数P很耗时间,而且经常会求一样的东西,因此我加了个记忆化搜索,用map存一下,避免重复计算。kindsOfAttribute这个是用来存第i个属性可能的取值数,好用来当拉普拉斯修正的那个要加在分母上的值,continuousPara是存连续值的那个mean和std,避免重复求。

然后这里我发现求出来的数和书本上不一样,仔细检查了一下,发现书上有一个地方错了,西瓜书P152页的那个P(凹陷|是)=6/8=0.750这里,真正我查了一下原表,应该是5/8=0.625才对,这里出错导致后面的数都多少有些差错。

我求累乘的时候,用的log累加法,这个道理很简单,为了防止小数下溢,精度损失&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值