贝叶斯算法

贝叶斯算法是一种分类算法,它以贝叶斯公式为基础。

贝叶斯公式

P(B | A) = P(A | B)  P(B)  / P(A)

举例:

我们有很多文章,并且我们想根据这些文章的内容将文章归类。

贝叶斯对于归类问题需要得到三个解,即上面公式的P( A | B), P(A), P(B)

首先我们理解P(A | B)

表示当B条件下A出现的概率,在这里表示,某类文章中某些单词组(或者可以叫特征词组)出现的概率。

理解P(B)

表示此类文档的个数在文档总数中的比例。

理解P(A)

表示所有文档包含特征词组的概率

举例

第一个例子。两个一模一样的碗,一号碗有30颗水果糖和10颗巧克力糖,二号碗有水果糖和巧克力糖各20颗。现在随机选择一个碗,从中摸出一颗糖,发现是水果糖。请问这颗水果糖来自一号碗的概率有多大?

我们假定,H1表示来自一号碗,H2表示来自二号碗。由于这两个碗是一样的,所以P(H1)=P(H2),也就是说,在取出水果糖之前,这两个碗被选中的概率相同。因此,P(H1)=P(H2)=0.5,我们把这个概率就叫做"先验概率",即没有做实验之前,来自一号碗和二号碗的概率都是0.5。

再假定,E表示取到水果糖,所以问题就变成了在已知E的情况下,来自一号碗的概率有多大,即求P(H1|E)。我们把这个概率叫做"后验概率",即在E事件发生之后,对P(H1)的修正。

根据条件概率公式,得到:

P(H1 | E) = P(H1)*P(E | H1) / P(E)

已知,P(H1)等于0.5,P(E|H1)为一号碗中取出水果糖的概率,等于0.75,那么求出P(E)就可以得到答案。根据全概率公式 :

P(E) = P(E | H1)  * P(H1) + P(E | H2)  * P(H2)

所以:

P(E) = 0.75*0.5 + 0.5*0.5 = 0.625

将数字代入原方程,得到:

P(H1 | E) = 0.5 * 0.75 / 0.625 = 0.6

这表明,来自一号碗的概率是0.6。也就是说,取出水果糖之后,H1事件的可能性得到了增强。

第二个例子

已知:有N个苹果,和M个梨子,苹果为黄色的概率为20%,梨子为黄色的概率为80%,问,假如我在这堆水果中观察到了一个黄色的水果,问这个水果是梨子的概率是多少。

用数学的语言来表达,就是已知P(apple) = N / (N + M), P(pear) = M / (N + M), P(yellow|apple) = 20%, P(yellow|pear) = 80%, 求P(pear|yellow).

要想得到这个答案,我们需要 1. 要求出全部水果中为黄色的水果数目。 2. 求出黄色的梨子数目

对于1) 我们可以得到 P(yellow) * (N + M), P(yellow) = p(apple) * P(yellow|apple) + P(pear) * p(yellow|pear)

对于2) 我们可以得到 P(yellow|pear) * M

2) / 1) 可得:P(pear|yellow) = P(yellow|pear) * p(pear) / [P(apple) * P(yellow|apple) + P(pear) * P(yellow|pear)]

化简可得:P(pear|yellow) = P(yellow,pear) / P(yellow), 用简单的话来表示就是在已知是黄色的,能推出是梨子的概率P(pear|yellow)是黄色的梨子占全部水果的概率P(yellow,pear)除上水果颜色是黄色的概率P(yellow). 这个公式很简单吧。

我们将梨子代换为A,黄色代换为B公式可以写成:P(A|B) = P(A,B) / P(B), 可得:P(A,B) = P(A|B) * P(B).贝叶斯公式就这样推出来了。

对贝叶斯理解还不是很深刻如有错误请大家指正

贝叶斯算法

时间: 2024-07-29 18:05:48

贝叶斯算法的相关文章

挖掘算法(1)朴素贝叶斯算法

原文:http://www.blogchong.com/post/NaiveBayes.html 1 文档说明 该文档为朴素贝叶斯算法的介绍和分析文档,并且结合应用实例进行了详细的讲解. 其实朴素贝叶斯的概念以及流程都被写烂了,之所以写这些是方便做个整理,记录备忘.而实例部分进行了详细的描述,网络上该实例比较简单,没有过程. 至于最后部分,则是对朴素贝叶斯的一个扩展了,当然只是简单的描述了一下过程,其中涉及到的中文分词以及TFIDF算法,有时间再具体补上. 2 算法介绍 2.1 贝叶斯定理 (1

mahout贝叶斯算法拓展篇3---分类无标签数据

代码测试环境:Hadoop2.4+Mahout1.0 前面博客:mahout贝叶斯算法开发思路(拓展篇)1和mahout贝叶斯算法开发思路(拓展篇)2 分析了Mahout中贝叶斯算法针对数值型数据的处理.在前面这两篇博客中并没有关于如何分类不带标签的原始数据的处理.下面这篇博客就针对这样的数据进行处理. 最新版(适合Hadoop2.4+mahout1.0环境)源码以及jar包可以在这里下载Mahout贝叶斯分类不含标签数据: 下载后参考使用里面的jar包中的fz.bayes.model.Baye

统计学习方法 -> 朴素贝叶斯算法

需要知道的是在什么时候可以用朴素贝叶斯算法:需要保证特征条件独立. 主要过程是学习输入和输出的联合概率分布. 预测的时候,就可以根据输入获得对打后验概率对应的输出y. 先验概率:已知输出,求输入.后验概率相反. 简单来说朴素贝叶斯算法,就是在对样本进行学习之后,到了需要做决策的时候,给定x,给出最大概率的y.这个本质上就是一个典型的后验概率模型.不过在该模型的算法推到上,还用到了先验概率的计算.但注意:最终朴素贝叶斯就是一种后验概率模型求P(y|x). 后验概率模型有一个好处,相当于期望风险最小

朴素贝叶斯算法及实现

1.朴素贝叶斯算法介绍 一个待分类项x=(a,b,c...),判断x属于y1,y2,y3...类别中的哪一类. 贝叶斯公式: 算法定义如下: (1).设x={a1, a2, a3, ...}为一个待分类项,而a1, a2, a3...分别为x的特征 (2).有类别集合C={y1, y2,  y3,  ..} (3).计算p(y1|x), p(y2|x), p(y3|x), .... (4).如果p(y(k)|x)=max{p(y1|x), p(y2|x), p(y3|x), ....},则x属于

朴素贝叶斯算法资料整理和PHP 实现版本

朴素贝叶斯算法简洁 http://blog.csdn.net/xlinsist/article/details/51236454 引言 先前曾经看了一篇文章,一个老外程序员写了一些很牛的Shell脚本,包括晚下班自动给老婆发短信啊,自动冲Coffee啊,自动扫描一个DBA发来的邮件啊, 等等.于是我也想用自己所学来做一点有趣的事情.我的想法如下: 首先我写个scrapy脚本来抓取某个网站上的笑话 之后写个Shell脚本每天早上6点自动抓取最新的笑话 然后用朴素贝叶斯模型来判断当前的笑话是否属于成

C#编程实现朴素贝叶斯算法下的情感分析

C#编程实现 这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Progressing)中的重要问题,用以对文本进行正负面的判断,以及情感度评分和意见挖掘.本文借助朴素贝叶斯算法,针对文本正负面进行判别,并且利用C#进行编程实现. 不先介绍点基础? 朴素贝叶斯,真的很朴素 朴素贝叶斯分类算法,是一种有监督学习算法,通过对训练集的学习,基于先验概率与贝叶

【数据挖掘】朴素贝叶斯算法计算ROC曲线的面积

题记:          近来关于数据挖掘学习过程中,学习到朴素贝叶斯运算ROC曲线.也是本节实验课题,roc曲线的计算原理以及如果统计TP.FP.TN.FN.TPR.FPR.ROC面积等等.往往运用ROC面积评估模型准确率,一般认为越接近0.5,模型准确率越低,最好状态接近1,完全正确的模型面积为1.下面进行展开介绍: ROC曲线的面积计算原理 一.朴素贝叶斯法的工作过程框架图 二.利用weka工具,找到训练的预处理数据 1.利用朴素贝叶斯算法对weather.nominal.arff文件进行

数据挖掘|朴素贝叶斯算法

作者:张一 链接:https://zhuanlan.zhihu.com/p/21571692 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 因为后期的项目将涉及到各种各样的价格数据处理问题,所以我们现在开始学习一些简单的数据清洗与算法的知识.关于算法,以前听起来觉得好高大上,现在开始学,觉得书上的描述并不是很通俗易懂,所以用自己的语言来简要写一下这些算法~ 注:非商业转载注明作者即可,商业转载请联系作者授权并支付稿费.本人已授权"维权骑士"网站(ht

Atitti 文本分类  以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案

Atitti 文本分类  以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案 1.1. 七.什么是贝叶斯过滤器?1 1.2. 八.建立历史资料库2 1.3. 十.联合概率的计算3 1.4. 十一.最终的计算公式3 1.5. .这时我们还需要一个用于比较的门槛值.Paul Graham的门槛值是0.9,概率大于0.9,4 1.1. 七.什么是贝叶斯过滤器? 垃圾邮件是一种令人头痛的顽症,困扰着所有的互联网用户. 正确识别垃圾邮件的技术难度非常大.传统的垃圾邮件过滤方法,主要有"关键词法&quo

朴素贝叶斯算法原理及实现

朴素贝叶斯算法简单高效,在处理分类问题上,是应该首先考虑的方法之一. 1.准备知识 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类. 这个定理解决了现实生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A).这里先解释什么是条件概率: 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率.其基本求解公式为:. 下面不加证明地直接给出贝叶斯定理: 2.朴素贝叶斯分类 2.1