蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOCX文档下载
 

python贝叶斯文本分类模型从原理到实现.docx

  • 资源ID:619320       资源大小:47.75KB        全文页数:9页
  • 资源格式: DOCX        下载权限:游客/注册会员    下载费用:8积分 【人民币8元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要8积分 【人民币8元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

python贝叶斯文本分类模型从原理到实现.docx

PYTHON贝叶斯文本分类模型从原理到实现朴素贝叶斯分类器是一种有监督学习,常见有两种模型,多项式模型MULTINOMIALMODEL即为词频型和伯努利模型BERNOULLIMODEL即文档型。二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。计算后验概率时,对于一个文档D,多项式模型中,只有在D中出现过的单词,才会参与后验概率计算,伯努利模型中,没有在D中出现,但是在全局单词表中出现的单词,也会参与计算,不过是作为“反方”参与的(避免消除测试文档时类条件概率中有为0现象而做的取对数等问题)。一、数据集数据集是有8个分类的文本数据集,使用了结巴分词对每个文本分词,每个单词当作特征,再利用二元词串构造更多特征,然后去掉停用词,去掉出现次数太多和太少的特征,得到了19630个特征。取1998个样本用于训练,509个用于测试。基于词袋模型的思路将每个文本转换为向量,训练集和测试集分别转换为矩阵,并用PYTHONNUMPY模块将其保存为NPY格式。数据集共使用了19630个单词作为特征,特征值是词在文本中出现的次数。8个分类,分别是1、2、、8。训练集共1998个样本,测试集共509个样本。二、朴素贝叶斯分类器划分邮件算法朴素贝叶斯分类器,基于贝叶斯定理,是一个表现良好的分类方法。1、公式原理推导主要根据事件间的相互影响进行公式推断。11、条件概率PA|BPA,B/PBA和B是随机事件,PA|B也就是在事件B发生的前提下事件A发生的概率。PA,B表示A、B都发生的概率。这样一来,我们可以通过统计结果计算条件概率。例如假设有1000封邮件,垃圾邮件有300封,出现单词购买的邮件为50封,而即是垃圾邮件又同时出现了购买这个单词的邮件共有20封。如果把垃圾邮件看成事件A,邮件里出现单词购买看成事件B,那么PA是指垃圾邮件出现的概率,因为没考虑其他的因素对A的影响,也可以将PA看做A的先验概率,这里PA300/100003同理,PB50/1000005PA,B是指A和B同时发生的概率,PA,B20/1000002根据条件概率的公式,能够得到PA|B002/00504因为有B的影响,PA|B也叫做A的后验概率。12、相互独立事件如果事件A和B是相互独立的,代表着A发生的可能性对B发生的可能性没有影响,B也对A没有影响,在这种情况下PA,BPAPB。既然A和B之间没有相互影响,那么PA|BPA,B/PBPAPB|APA,B/PAPB13、贝叶斯定理由PA|BPA,B/PB很容易推出PA|BPB|APA/PB这也就是贝叶斯公式了。14、朴素贝叶斯分类器(NAIVEBAYESCLASSIFIER)首先有以下定理如果B、C相互独立,那么PB|C,APB|A。设有事件A、B1、B2,那么在B1、B2同时发生的前提下,A发生的概率是PA|B1,B2PB1,B2|APA/PB1,B2如果B1和B2相互独立,那么有PB1,B2|AP(B1|B2,APB2|APB1|APB2|A于是,PA|B1,B2PB1,B2|APA/PB1,B2PB1|APB2|APA/PB1,B2根据实际需求,假设某个体有N项特征(可以看着邮件中出现的词语),分别为F1、F2、、FN。现有M个类别(可以看着邮件的分类),分别为C1、C2、、CM。贝叶斯分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值(即算出每个分类的概率,以最大概率为最终分类)PC|F1,F2,,FNPF1,F2,,FN|CPC/PF1,F2,,FN由于PF1,F2,,FN对于所有的类别都是相同的,可以省略,问题就变成了求PF1,F2,,FN|CPC的最大值。朴素贝叶斯分类器则是更进一步,假设所有特征都彼此独立,因此PF1,F2,,FN|CPCPF1|CPF2|CPFN|CPC朴素贝叶斯分类器假设所有特征都彼此独立存在一定的不合理性,不过该分类器一般能取得很好的分类效果。2、判断邮件是否为垃圾邮件假定我们现在有1000封被标识的邮件作为训练集,训练集一般是人工标识,分为“垃圾邮件”、“正常邮件”。注意,训练集不宜人为地从大量邮件中有意挑拣,而应随机挑拣。然后我们从邮件中选取特征,例如我们把单词“购买”是否出现在邮件中看作是该邮件的一个特征,训练时候应该记录含有单词“购买”的垃圾邮件有多少封,含有单词“购买”的正常邮件有多少封,按照这个思路,我们得到以下表格特征词统计正常邮件垃圾邮件汇总“购买”105060“淘宝”85664“开心”60363“编程”201535汇总98124222好了,现在有一封邮件需要分类,假设它有购买、淘宝、开心、编程四个特征,那么其属于正常邮件的可能性是10/988/9860/9820/9898/2220000459属于垃圾邮件的可能性是50/12456/1243/12415/124124/222000029768结果是该邮件更有可能是正常邮件。如果邮件只有有开心和编程两个特征,那么其属于正常邮件的可能性是60/9820/9898/22200551571属于垃圾邮件的可能性是3/12415/124124/22200016346992153443768结果是该邮件更有可能是正常邮件。3、让分类器更合理如果我们的统计结果是这样的特征词统计正常邮件垃圾邮件汇总(求和)“购买”105060“淘宝”85664“开心”63063“编程”201535汇总求和101121222具有特征开心的垃圾邮件有0封。如果某封邮件具有购买、淘宝、开心这三个特征,按照上面的思路,该邮件属于正常邮件的可能性是10/1018/10163/101101/222000222553属于垃圾邮件的可能性是50/12156/1210/121121/2220这意味着,只要邮件里有“开心”,那么它就不是垃圾邮件(属于垃圾邮件的可能性为0),这显然是不合理的。对此,我们可以对PF1|C(以及PF2|C、PF3|C等)做如下处理(加权平均)P2F1|C105SUMF1PF1|C/1SUMF105SUMF1PF1|C/1SUMF1其中,若F1是开心,那么SUMF163063。于是,属于正常邮件的可能性是0510/10160/61058/10164/650563/10163/64101/22200025593104680632236属于垃圾邮件的可能性是0550/12160/610556/12164/65050/12163/64121/22200008181611103439531这封邮件还是倾向于正常邮件,不过计算方式更合理了。另外我们也可以通过取对数的方式进行优化。这样更合理,因为对数的相乘可以变成相加。4、如何由计算结果判断类别如果计算出一封邮件属于正常邮件的概率是005,属于垃圾邮件的概率是0006,基本可以肯定这是一封正常邮件。不过,如果一封邮件属于正常邮件的概率是005,属于垃圾邮件的概率是0049,那么这封邮件是否该划分为垃圾邮件也许在这个时候就要在训练之后再填上一个分类了不确定分类。首先,设定一个阈值T(大于1),待标注数据D,两个分类C0和C1,如果PC0|D/PC1|DT那么,D属于类别C0。如果PC1|D/PC

注意事项

本文(python贝叶斯文本分类模型从原理到实现.docx)为本站会员(马老师)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开