朴素贝叶斯分类文本 python实现

本文介绍了如何使用朴素贝叶斯模型进行文本分类,特别是电子邮件的正常与侮辱性分类。通过假设特征间的独立性,简化了计算,虽然这并不完全符合实际情况,但分类效果良好。文中提到了极大似然估计,并给出了Python实现代码,参考了《机器学习实战》一书,用于处理如'welcome to my blog!'和'fuck you bitch!!'等样例。
摘要由CSDN通过智能技术生成

朴素贝叶斯(naive bayes)模型主要用于文本分类,比如要将邮件分类为正常邮件和带侮辱性词汇邮件

对于一封邮件来说其特征可以表示为该邮件中单词出现的情况。

比如我们有一个5000个词的词典表,那么邮件的特征可表示成一个特征向量,特征向量的维数等于词典表的单词个数,特征向量每一维的取值空间为0或1(即这个单词是否出现)

对于p(x|y),在某一组样本中:

p(x1x2...x5000|y)=p(x1|y)p(x2|y,x1).....p(x5000|y,x1,x2...x4999)

这个问题是很复杂的,因此我们需要做朴素贝叶斯假设(这就是为什么这个算法朴素的原因):

       我们假设样本中的特征(即每个词出现的情况)相互独立

该假设不符合常理,因为很多词的出现概率之间是有联系的。例如,邮件中如果出现了‘Obama’,那么邮件中出现‘USA’的概率将会大大提高。

但是我们做了这个假设后,能够简化我们的问题,且分类器的效果还不错

因此上式可改为:

p(x1x2...x5000|y)=p(x1|y)p(x2|y,x1).....p(x5000|y,x1,x2...x4999)

=p(x1|y)p(x2|y)..p(x5000|y)

之后求解极大似然估计啥的就不写了,最终通过训练样本我们需要得到的是:y=0时第j个词出现的概率,y=1时第j个词出现的概率,以及样本中y=1的概率

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值