从朴素贝叶斯分类器到贝叶斯网络(上)

一、贝叶斯公式(一些必备的数学基础)

贝叶斯(Thomas Bayes)是生活在十八世纪的一名英国牧师和数学家。因为历史久远,加之他没有太多的著述留存,今天的人们对贝叶斯的研究所知甚少。唯一知道的是,他提出了概率论中的贝叶斯公式。但从他曾经当选英国皇家科学学会会员(类似于院士)来看,他的研究工作在当时的英国学术界已然受到了普遍的认可。

事实上,在很长一段时间里,人们都没有注意到贝叶斯公式所潜藏的巨大价值。直到二十世纪人工智能、机器学习等崭新学术领域的出现,人们才从一堆早已蒙灰的数学公式中发现了贝叶斯公式的巨大威力。为了方便后续内容的介绍,这里我们先来简单复习一下概率论中的一些基本知识。

事件A在另外一个事件B已经发生条件下的发生概率,称为条件概率,记为P(A|B)。

两个事件共同发生的概率称为联合概率。A与B的联合概率表示为 P(AB) 或者P(A,B)。

进而有,P(AB) = P(B)P(A|B)=P(A)=P(B|A)。这也就导出了最简单形式的贝叶斯公式,即

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

以及条件概率的链式法则

P(A1,A2,...,An) = P(An|A1,A2,...,An-1)P(An-1|A1,A2,...,An-2)...P(A2|A1)P(A1)

概率论中还有一个全概率公式

由此可进一步导出完整的贝叶斯公式

二、朴素贝叶斯分类器(Na?ve Baysian classifier)

分类是机器学习和数据挖掘中最基础的一种工作。假设现在我们一组训练元组(Training tuples),或称训练样例,以及与之相对应的分类标签(Class labels)。每个元组都被表示成n维属性向量X=(x1, x2, ..., xn)的形式,而且一共有K个类,标签分别为C1, C2, ..., Ck。分类的目的是当给定一个元组X时,模型可以预测其应当归属于哪个类别。

朴素贝叶斯分类器的原理非常简单,就是基于贝叶斯公式进行推理,所以才叫做“朴素”。对于每一个类别Ci, 利用贝叶斯公式来估计在给定训练元组X时的条件概率p(Ci|X),即

P(Ci|X) = P(X|Ci)P(Ci)/P(X)

当且仅当概率P(Ci|X)在所有的P(Ck|X)中取值最大时,就认为X属于Ci。更进一步,因为P(X)对于所有的类别来说都是恒定的,所以其实只需要P(Ci|X) = P(X|Ci)P(Ci)最大化即可。

应用朴素贝叶斯分类器时必须满足条件:所有的属性都是条件独立的。也就是说,在给定条件的情况下,属性之间是没有依赖关系的。即

为了演示贝叶斯分类器,来看下面这个例子。我们通过是否头疼、咽痛、咳嗽以及体温高低来预测一个人是普通感冒还是流感。

上面是我们提供的训练数据。现在有一个病人到诊所看病,他的症状是:severeheadache,  no soreness, normaltemperature and with cough。请问他患的是普通感冒还是流感?分析易知,这里的分类标签有Flu 和Cold两种。于是最终要计算的是下面哪个概率更高。

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Flu)*P(Headache= severe|Flu)*P(Sore= no|Flu)*P(Temperature= normal |Flu)*P(Cough = yes|Flu)

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Cold)*P(Headache= severe|Cold)*P(Sore= no|Cold)*P(Temperature= normal |Cold)*P(Cough = yes |Cold)

为了计算上面这个结果,我们需要通过已知数据(训练数据)让机器自己“学习”(建立)一个“模型”。由已知模型很容以得出下表中的结论

以及

e= small value = 10^-7(one can use e to be less than 1/n where n is the number of training instances)

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

= P(Flu)*P(Headache = severe|Flu)*P(Sore= no|Flu)*P(Temperature = normal |Flu)*P(Cough = yes|Flu)

=   3/5   ×  2/3    ×     e     ×        2/3       ×      3/3    = 0.26e

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

~ P(Cold)*P(Headache =severe|Cold)*P(Sore = no|Cold)*P(Temperature = normal |Cold)*P(Cough = yes|Cold)

=  2/5     ×      e        ×      ?       ×   1       ×        ?    = 0.1e

显然P(Flu) > P(Cold),所以我们的诊断(预测,分类)结果是 Flu。

最后讨论一下朴素贝叶斯分类器的特点(来自网上资料总结,我就不翻译了):

? Na?ve Bayesian Classifier is very simple to build, extremely fast to make decisions, and easy to change the probabilities when the new data becomes available (especially when the new data is additional information not modification to previously used data).

? Works well in many application areas.

? Scales easily for large number of dimensions (100s) and data sizes.

? Easy to explain the reason for the decision made.

? One should apply NB first before launching into more sophisticated classification techniques.

我们将把贝叶斯网络留待下一篇文章中介绍(未完,待续...)。

时间: 2024-10-11 18:17:46

从朴素贝叶斯分类器到贝叶斯网络(上)的相关文章

从朴素贝叶斯分类器到贝叶斯网络(下)

书接上文 :从朴素贝叶斯分类器到贝叶斯网络(上) 三.贝叶斯网络 贝叶斯网络(Bayesian Network)是一种用于表示变量间依赖关系的数据结构.有时它又被称为信念网络(Belief Network)或概率网络(Probability Network).在统计学习领域.概率图模型(PGM,Probabilistic Graphical Models)经常使用来指代包括贝叶斯网络在内的更加宽泛的一类机器学习模型.比如隐马尔可夫模型(HMM,Hidden Markov Model)也是一种PG

PGM学习之三 朴素贝叶斯分类器(Naive Bayes Classifier)

介绍朴素贝叶斯分类器的文章已经很多了.本文的目的是通过基本概念和微小实例的复述,巩固对于朴素贝叶斯分类器的理解. 一 朴素贝叶斯分类器基础回顾 朴素贝叶斯分类器基于贝叶斯定义,特别适用于输入数据维数较高的情况.虽然朴素贝叶斯分类器很简单,但是它确经常比一些复杂的方法表现还好. 为了简单阐述贝叶斯分类的基本原理,我们使用上图所示的例子来说明.作为先验,我们知道一个球要么是红球要么是绿球.我们的任务是当有新的输入(New Cases)时,我们给出新输入的物体的类别(红或者绿).这是贝叶斯分类器的典型

七月算法--12月机器学习在线班-第十三次课笔记—贝叶斯网络

七月算法--12月机器学习在线班-第十三次课笔记-贝叶斯网络 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com ? 1.1 贝叶斯公式带来的思考:给定结果推原因: 1.2朴素贝叶斯的假设 1,一个特征出现的概率,与其他特征(条件)独立(特征独立性) 2, 每个特征同等重要 例如:文本分类 ,词出现为1,不出现为0 贝叶斯公式: 分解: ? 拉普拉斯平滑 判断两个文档的距离:夹角余弦 判断分类器的正确率:交叉验证 若一个词出现的次数多,一个

贝叶斯网络小结

周末去给同事分享贝叶斯网络,每次分享过后的东西都没有记录感觉挺可惜的,故把准备分享过程中的一些笔记.资料.关键点等写成文章记录下来. 1.贝叶斯网络的定义 一个贝叶斯网络是一个有向无环图(DAG),其节点表示一个变量,边代表变量之间的联系,节点存储本节点相当于其父节点的条件概率分布. 其中每个节点受其父节点所影响,即其父节点代表原因,子节点表示结果. 用数学的形式描述就是贝叶斯网络各变量的联合概率分布等于其每个节点的以其父为条件概率的乘积. 即: 2.贝叶斯网络的推导 贝叶斯网络的推导即回答该贝

贝叶斯网络简介

简介 贝叶斯网络(Bayesian network),又称信念网络(belief network)或是有向无环图模型(directed acyclic graphical model),是一种概率图型模型,借由有向无环图(directed acyclic graphs, or DAGs )中得知一组随机变量{}及其n组条件概率分配(conditional probability distributions, or CPDs)的性质.一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是

PGM:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是

机器学习之&&贝叶斯定理、朴素贝叶斯实现、贝叶斯网络等知识博客整理

什么是历史,历史就是我们,不是你,不是他,不是她,是所有人. ----------题记 本文是博主对于bayes及其相关知识的读物总结. 一.数学之美番外篇:平凡而又神奇的贝叶斯方法 二.机器学习理论与实战(三)朴素贝叶斯 三.从贝叶斯方法谈到贝叶斯网络 四.数学之美----贝叶斯网络 (2) 五.贝叶斯网络的学习 六.Stanford概率图模型(Probabilistic Graphical Model)- 第一讲 贝叶斯网络基础 七.隐马尔科夫模型 和动态贝叶斯网络 八.贝叶斯网络在线构建过

概率图模型:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是

数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种,各自是:Naive Bayes.TAN.BAN和GBN. 贝叶斯网络是一个带有概率凝视的有向无环图,图中的每个结点均表示一个随机变量,图中两结点 间若存在着一条弧,则表示这两结点相相应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的.网络中随意一个结点X 均有一个对应的条件概率表(Con