Advertisement

分类算法之朴素贝叶斯(Naive Bayes)和贝叶斯网络(Bayesian Networks)

阅读量:
  • 1.概述

大家都知道贝叶斯定理,一个简单的条件概率求解公式:

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

该方法具有简明扼要的特点且易于理解。其优势在于能够通过数学公式将条件概率P(A|B)转换成由已知的先验概率(如P(A)P(B))和相关条件概率(如P(B|A))组成的组合,并且等式右侧可以通过对样本数据进行统计分析来获得这一结果。从而实现求取P(A|B)的目标。

该分类方法建立在贝叶斯定理的基础上;本文将重点阐述的两种分类技术:朴素贝叶斯与贝叶斯网络;这些方法可以被视为适用于不同应用场景的分类方案。

就贝叶斯分类而言,在实际应用场景中除传统方法外还对其进行了优化和改进等同于对这些方法进行了拓展与提升例如通过属性加权以及结合遗传算法等方式实现性能的进一步提升。就分类技术而言当前主流的有贝叶斯分类器支持向量机决策树神经网络等经典方案可供选择对于对此感兴趣的研究者建议深入研究以掌握更多相关知识

  • 2.朴素贝叶斯

我们用一个实际问题来引入朴素贝叶斯分类方法的思想。

假设存在两种不同颜色的小球。这些小球分别标记为红色(red)与黄色(yellow)。每个小球都标有一个小写字母(a到z)以及一个数字(0到9)。例如编号为b1的小球带有字母a、数字2以及红色标记。另一个例子是编号为b2的小球带有字母k、数字6以及黄色标记。

目前共有100个这样的球存在,并且这些球的颜色只能是红色或黄色;每个球表面都标有一个英文字母和一个数字。

假设有一个球其颜色不可知但表面刻有特定的文字和数字信息问题在于我们需要比较该球为红色与黄色的概率大小

问题建模:

球的颜色表示类别,这里有两类,即C:{Cr,Cy}。

球的特征有2个,分别表示小写字符和数字,即F:{F1,F2}。

现在的问题是:对于一个给定的特征变量f(比如<b,7>),计算P(Cr|f)和P(Cy|f)哪个大。

利用贝叶斯定理:P(Cr|f) = P(Cr^f) / P(f) = P(Cr)*P(f|Cr) / P(f) = P(Cr)*P(f1|Cr)*P(f2|Cr) / P(f)

最后一步的推理我们稍后来说。

基于这100个样本球,在这些数据的基础上我们可以相对容易地获得等式右侧的概率值。举例来说,在这些样本中存在48只黄色小球和52只红色小球的情况下,则计算得出P(Cr) = 52/100;进一步细分时发现标有字符b的是6只红色小球(f₁),而标有数字7的是10只红色小球(f₂),因此相应的条件概率分别为P(f₁ | Cr) = 6/52和P(f₂ | Cr) = 10/52。

在此基础上,在分析样本各类别的先验概率以及各特征在已知类别中的条件概率后,在应用上述数学公式进行推导的过程中,则能够较为便捷地得出该变量f属于各个类别的具体概率值。

我们可以进一步探讨上述推理过程中关键的一步:概率P(f|Cr)是如何逐步演变为P(f1|Cr)\times P(f2|Cr)的过程。

原因不言而喻。这个前提条件是:特征集里的每个特征都是彼此独立的。根据概率论的相关知识可知:当A和B彼此独立时,则满足P(AB)=P(A)P(B)。因此上述推论自然成立。这一前提条件使得朴素贝叶斯与其他贝叶斯分类算法如贝叶斯网络的本质区别得以体现:由于这一假设限制了其适用场景的广度;但另一方面来说,在处理那些特征之间或近似独立的问题时;其模型结构和计算过程都展现出极强的效率和实用性。

  • 3.贝叶斯网络

当朴素贝叶斯的基本假设被违背,并且各特征之间存在显著的相关性时,则贝叶斯网络便得以建立。

通常情况下,并非所有特征之间的独立性是可以实现的。例如,在处理文本分类问题时,并非所有词汇之间都存在简单的独立关系;相反地,在这种复杂的情境下,并不存在任何两个相邻词汇或近义词之间完全没有相互联系的情况。

各特征间的相互关联无法被朴素贝叶斯分类器所训练获取,然而这种相互关联却为问题解决方案带来了额外的复杂性

贝叶斯网络基于有向无环图(Directed Acyclic Graph, DAG)构建,并包含一组条件概率表以描述各随机变量之间的依赖关系。在DAG中,每个节点V代表一个随机变量或特征值;边E(如A→B)表明节点A是节点B的父亲节点,并且它们之间存在依赖关系,并不相互独立。此外,在这种结构中引入了条件独立性的概念:即在给定某个节点的所有父节点信息后(par(v)定义为该节点所有父节点集合),该节点与其他所有非父节点均呈现统计上的独立性特性;具体而言,则满足以下概率关系式:P(v | par(v), x₁, x₂, ..., xₙ) = P(v | par(v));其中x₁, x₂, ..., xₙ代表其他所有非父非子的其他相关变量集合

我们坚信,在已知所有联合概率分布(joint distribution)的情况下,任何概率问题都能得到顺利解决。然而,在特征集合超过10的情况下(即|X|>10),几乎无法通过统计方法获得相应的数据。在某种程度上而言,特征集合的大小与分类效果之间存在一种正向反馈关系。因此,在这种情况下,解决这一问题的方法是利用条件独立性概念来优化各条件概率值。具体细节可参考相关文献中的贝叶斯网络教程部分。

  • 4.小结

贝叶斯分类技术是一种用来展示已知数据集属性分布的方法,在这种情况下其计算结果完全由训练样本中的类别和特征分布所决定。与支持向量机(SVM)等其他分类技术不同的是,在这种情况下它仅仅旨在反映事实(即Bayes分类器并不试图达到最大的判别性——它们仅仅致力于真实地建模发生了什么)。我是否表达得足够清晰?

在朴素贝叶斯算法中,在某些条件下当某些条件概率值不存在时,则通常采用对所有概率值加1的方法来处理这个问题。

  • 5.参考文献

(1)naive bayes的tutorial。http://www.autonlab.org/tutorials/naive02.pdf

(2)bayesian net的tutorial。http://www.autonlab.org/tutorials/bayesnet09.pdf

(3)http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

(4)http://www.cnblogs.com/leoo2sk/archive/2010/09/18/bayes-network.html

全部评论 (0)

还没有任何评论哟~