首页 > 02贝叶斯算法 > 02贝叶斯算法,0基础理解分类算法

02贝叶斯算法,0基础理解分类算法

互联网 2021-12-06 23:05:26 Tags:02贝叶斯算法

算法02 贝叶斯分类算法程序员提高班Lambda在线贝叶斯机器学习:经典模型与代码实现Python数据之道CSDN博客python 朴素贝叶斯算法黄俊文的博客CSDN博客分类算法――朴素贝叶斯分类 开发者知识库朴素贝叶斯算法,贝叶斯分类算法,贝叶斯定理原理 爱码网0基础理解分类算法朴素贝叶斯 知乎朴树贝叶斯分类算法 编程猎人基于关联信息的贝叶斯分类算法研究 百度学术

写在前面

最近工作中一些分析场景需要使用基本的模型。作为半路出家的分析师,正处于不断学习的状态。由于数学水平有限,所以希望能够跳出公式之外,感性的理解和帮助记忆这些模型的原理;好记性不如烂笔头,知乎当然是笔记本的最佳选择。如果能够帮助到其他同道中人,当然更加求之不得

话不多说,进入正题

一、贝叶斯分类的原理

很多分类模型都是基于贝叶斯分类的思想。如何理解贝叶斯分类呢?来听我以初中数学的水平道来

首先,我们要理解一个公式P(Y|X)*P(X)=P(XY)=P(X|Y)*P(Y),怎么理解呢?就是在一堆样本中,同时满足X条件和Y条件的人数=满足X条件的人中同时也满足Y条件的人数=满足Y条件的人中同时也满足X条件的人数,这个不难理解对吧,同样,等号三侧的概率肯定能也是一样的,于是就有了前面的公式

第2步,我们给公示做一个变形P(Y|X)=P(X|Y)*P(Y)/P(X),这一步应该也可以理解对吧;这个时候,我们具象一点可以对应到贝叶斯分类的真实场景啦(开启一个工科女的自我吐槽),假设我们现在的场景在女生中展开:你在学校遇到一个小姐姐,对比一下自己,感觉她的妆容好好看,于是你情不自禁猜测“她是文科班的概率”。那这时候Y对应“是文科生”;X呢,对应“化妆了”;那你怎么得到概率呢,可以基于之前的观察,从公式来看,我们可以通过:文科女生化妆的概率、女生化妆的概率、女生学文科的概率这3个值来得到。也就是说我们要通过一些比较容易计算的概率,来推测一个未知的概率。到这里应该也可以理解哈?

这个时候,我们想一下,仅仅通过化妆这一项来判断,未免信息太少了,还需要收集更多的信息才能更好的判断,于是:

第3步:把X来扩展成多项信息:比如先扩展成两项x1和x2,也就是P(Y|x1*x2)=P(x1*x2|Y)*P(Y)/P(x1*x2),其实x1对应是否化妆,x2对应是否穿裙子;依次类推,我们还可以引入x3、x4、x5等等

第4步:再来变形,P(Y|x1*x2)=[ P(x1|Y)*P(x2|Y) ] * P(Y)/ [ P(x1)*P(x2) ];这里有两处变形,以第二处为例,我们将P(x1*x2)转化成[ P(x1)*P(x2) ]了,即同时满足x1和x2条件的概率=满足x1条件的概率*满足x2条件的概率。这里大家应该也可以理解,举个例子,抛两次硬币都正面朝上的概率=第1次正面朝上的概率*第2次正面朝上的概率,right?(当然,细心的小伙伴发现了,这个的前提是,x1和x2是相互独立的两个条件,在朴素贝叶斯中,我们默认如此,这也正是“朴素”所在)。到这里,我们就把问题变成通过更容易得到的概率来计算了

二、贝叶斯进行分类的例子

ok,懂得了原理,我们基于以上的场景,来实际算一下,我们路上遇到的这位穿裙子的、妆容美美的小姐姐,到底来自文科班还是理科班呢?基于你之前认识的10位集美的情况,你可以做出如下推测

三、贝叶斯进行文本分类的例子

强烈推荐这篇文章,朴素贝叶斯文本分类实现 python cherry分类器,如果对原理已经理解的比较成熟了,可以直接跳到「贝叶斯模型实现」模块开始看。这里面还有代码实现

四、在朴素贝叶斯中,有几个细节需要知道:

1、拉普拉斯平滑:又称“加 1 平滑”,是比较常用的平滑方法;

为什么需要平滑呢?这是因为在文本分类的问题中,当一个词语没有在训练样本中出现过,该词语的概率为0,那么使用连乘计算文本出现概率时也为0;这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是0;所以在使用朴素贝叶斯时,会给每个分量的计数+1;

举个例子来帮助理解:假设在文本分类中有3个类,C1、C2、C3,在指定的训练样本中,某个词语K1在各个类中观测计数分别为0,990,10,则K1对应三个分类的概率为0,0.99,0.01,对这三个类使用拉普拉斯平滑的计算方法如下: 1/1003 = 0.001,991/1003=0.988,11/1003=0.011

2、文本分类中的垃圾文本过滤,可以通过计算句子的熵、并设置一个熵的范围来实现过滤

举个例子,现在有两个句子:“车厘子车厘子车厘子车厘子”、“车厘子是一只非常可爱的猫咪”;在计算熵时,可以分为2步,第1步进行分词得到[车厘子,车厘子,车厘子,车厘子]、[车厘子,非常,可爱,猫咪];第2步计算熵:计算熵的公式为H=-sum(p(x)log2p(x)),句子1中各词出现概率为1,H1=-sum(1*0)=0;句子2中个词出现的概率为1/4,H2=-sum(1/4*-2+1/4*-2+1/4*-2+1/4*-2)=2

最后呈上参考文献,觉得没讲清楚的可以移步查看。如果有其他方便理解和记忆的好方法,欢迎大家讨论!如果觉得有用的话,也顺手点个赞吧~

忆臻:带你理解朴素贝叶斯分类算法、算法杂货铺--分类算法之朴素贝叶斯分类

朴素贝叶斯 拉普拉斯平滑(Laplace Smoothing)

朴素贝叶斯文本分类实现 python cherry分类器,原理+实践,非常细致,强烈推荐;如果对原理已经了解很清楚了,可以直接从「贝叶斯模型实现」模块开始看

免责声明:非注明原创的信息,皆为程序自动获取自互联网,目的在于传递更多信息,不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给网站管理员发送电子邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),网站管理员将在收到邮件24小时内删除。