我们一起玩AI 7——贝叶斯公式与垃圾邮件过滤

5秒导读,本文将叙述贝叶斯公式,以及如何使用贝叶斯公式,进行垃圾邮件判断

  说到垃圾分类,一定是当下最火的话题之一,听说“你是什么垃圾?”已经逼疯了很多上海人。

  不过除了上海人,我们的邮件过滤器每天也在问同样的问题


要垃圾分类,我们首先从贝叶斯公式说起,贝叶斯公式,其实是一种非常古老的技术,嗯,大概是康熙至乾隆年间的技术——贝叶斯 ( Thomas Bayes 1702-1761 ) 



虽然大清亡了!但是贝叶斯公式还在,至于贝叶斯公式有什么用——很多,很大,我们从最基本的说起垃圾邮件过滤说起!贝叶斯公式告诉我们,如果邮件中含有“**妇”,“秒到账”,“一刀999级”....等词,那么十有八九是垃圾邮件

Ok,进入正题,贝叶斯公式最大的作用,在于使用已知条件,求出未知条件,比如说,一个学习男女比例64,假如男生都穿长裤,女生一半穿长裤,一半穿裙子(不考虑伪娘情况)。你看见一个穿长裤的人走来,但是你没看清他是男是女,请问他是女生概率多大?

这里已知的条件是: P(穿裤子|女生)(在已知是女生的条件下穿裤子的概率)

而所求概率为p(女生|穿裤子),(一个穿裤子的人多大概率是女生)

先看看贝叶斯公式长什么样子


嗯,和条件概率公式长的差不多!其实不但长的差不多,本质也差不多,都是一个核心——占比!比如说上期的摸牌P(人头牌|红色),就是所有红色中,人头牌的占比。这次的p(女生|穿裤子),所有穿裤子的人中女生占比!

P(B|APB)是啥?根据条件概率公式,就是PAB)!再一次请出,条件概率公式


就裤子问题而言,P(B|A)*p(A)就是她是女生并且穿裤子的概率,下面的P(B)呢?不管是男是女穿裤子的概率!

OK,那么裤子问题的答案是多少?(友情提示,千万不要在公式里绕!记住一个关键——占比!然后把图画出来一切就清楚了!)

 

P(女生且穿裤子)=P(穿裤子|女生)*p(女生) = 1/2 *4/10 = 2/10(图中渐变浅蓝部分)

P(穿裤子)=P(穿裤子|男生)p(男生)+P(穿裤子|女生)*p(女生) =6/10*1 + 4/10*1/2 = 8/10

 

P(女生|穿裤子)=P(女生且穿裤子)/ P(穿裤子) 0.2 / 0.8 = 0.25,也就是说你看见一个穿长裤的人走来,他/她是女生的概率只有25%

其实贝叶斯公式,还有更标准的写法,再次提醒!不管怎么写,用占比去理解!


公式右边的分母,其实是一个全概率公式

怎么理解呢?发生B的概率,等于所有的发生B且发生Ai概率之和。怎么理解还是看图,穿裤子的概率=男生穿裤子的概率+女生穿裤子的概率。

好吧贝叶斯公式讲完。那么怎么用贝叶斯公式分类垃圾邮件?答案就是,每收到一封邮件,我们都让贝叶斯过滤器问一问:


首先我们可以手工统计一下垃圾邮件的概率!然后,我们可以把邮件内容拆成一组词记作D{d1,d2.....dn}

比如说...额..还是不比如了!全是马赛克


然后写出贝叶斯公式

P(垃圾邮件|D) = P(垃圾邮件)*p(D|垃圾邮件)/P(D)

P(正常邮件|D) = P(正常邮件)*p(D|正常邮件)/P(D)

上面两个概率算出来哪一个更大归为哪一类就行!

为了方便计算,我们设d1与dn独立,也就是d1的出现不影响dn出现的概率(事实上并不独立,比如出现“寂寞”后面多半是“*妇”,出现“一刀999”后面多半是“**月”,不过顾不了那么多了,好在其对结果影响小到可以忽略不记)。另一方面,朴素贝叶斯还假设每一个特征都同等重要(事实上这个也不一定)。

在d1...dn相互独立的条件下,p(D|垃圾邮件)就变成了p(d1,d2...dn|垃圾邮件) = p(d1|垃圾邮件)* p(d2|垃圾邮件)* p(dn|垃圾邮件)

啥意思呢?统计一下垃圾邮件中出现“**妇”,“秒到账”,“一刀999级”....等词的频率就行了!

因为是比较两个式子的大小,所以P(D)不用算。寻思一下吧...正常邮件哪来的“一刀999级”?所以P(马赛克|正常邮件)的概率会非常小,而P(马赛克|正常邮件)普遍高达10-30%!


今天的内容到此为止

关注我们,获取更多有关 AI与大数据的信息。ASRay明日丽科技——科技助力企业发展,携手共创更美明天!


网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2019 彩龙社区(http://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP