贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理(Bayes theorem)为基础,采用了概率推理方法。贝叶斯分类的原理就是通过计算给定样本在各个类别上的后验概率,然后把该样本判定为最大后验概率所对应的类别。而在计算后验概率的过程中,需要知道数据集中每个类别的先验概率,以及属性的条件概率。类别的先验概率可以通过统计的手段预先知道,而属性的条件概率也可以通过统计的方法或者假定的分布模型来估计 [14,15] 。
贝叶斯定理在现实中特别有用。这个定理解决了现实生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。
这里先解释什么是条件概率:表示事件B已经发生的前提下,事件A发生的概率,称为事件B发生下事件A的条件概率。其基本求解公式为:
贝叶斯定理之所以有用,是因为在生活中经常遇到这种情况:可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但人们往往更关心P(B|A),贝叶斯定理打通了从P(A|B)获得P(B|A)的道路。
下面不加证明地直接给出贝叶斯定理:
贝叶斯定理是概率论中的一个结果,它和随机变量的条件概率及边缘概率分布有关。在有些关于概率的解释中,贝叶斯定理(贝叶斯更新)能够告知如何利用新证据修改已有的看法。
通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。
作为一个规范的原理,贝叶斯定理对于所有概率的解释是有效的;然而,频率主义者和贝叶斯主义者对于在应用中,概率如何被赋值有着不同的看法:频率主义者根据随机事件发生的频率,或者总体样本里面的个数来赋值概率;贝叶斯主义者要根据未知的命题来赋值概率。结果就是,贝叶斯主义者有更多的机会使用贝叶斯定理。
朴素贝叶斯分类是贝叶斯分类的一种,朴素贝叶斯分类和贝叶斯分类都有着坚实的数学理论基础,朴素贝叶斯分类与贝叶斯分类相比,后者需要花很大的时间和空间复杂度去计算类条件概率,然而,各条件属性之间的相关性也无法得知,这更加增大了计算的难度,基于这种情况,朴素贝叶斯分类就被提出来了,相比于贝叶斯分类,朴素贝叶斯分类增加了一个条件假设,即类条件独立性假设,该假设假定所有的条件属性在类条件已知的情况下是完全相互独立的,这就大大简化了条件概率的计算复杂性,也使得朴素贝叶斯分类得以快速地推广。
朴素贝叶斯分类器(Naïve Bayes Classifier,NBC)是众多高效的分类器之一,有时也称为朴素贝叶斯模型,它基于贝叶斯理论和贝叶斯网理论,其最大的特点是简单高效。
朴素贝叶斯分类的优缺点如下。
首先,由于属性条件独立性假设,使得 NBC 在处理具有不同属性特点的数据集时也能保持稳定的分类性能,而不用考虑各个属性间的关联。其次,NBC模型结构简单,需要估计的参数也相对比较少,因此 NBC 在模型训练和数据分类的过程中计算开销也比较小,简单、高效是朴素贝叶斯分类算法的主要优势。
NBC 也存在一定的不足。在实际应用中基本上不可能满足其属性条件独立性的假设,对那些属性间存在高度相关性的数据,如果直接使用 NBC 进行处理,分类效果很难达到实际预期。另外,在需要处理的数据不完整,或者出现极度不平衡数据时可能就会导致某个甚至某些属性的后验概念出现较大偏差,从而影响最终的分类结果。不过,目前已有相关方法解决数据不完整和不平衡数据问题,比如拉普拉斯平滑技术、属性加权方法等。这些方法在一定程度上可以提高NBC的性能。
朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比你在街上看到一个黑皮肤的人,让你猜他来自哪里,你十有八九猜来自非洲。为什么呢?因为黑皮肤的人中非洲人的比率最高,当然他也可能是亚洲人或美洲人,但在没有其他可用信息下,会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
朴素贝叶斯分类的正式定义如下:
(1)设x={a 1 ,a 2 ,…,a m }为一个待分类项,而每个a为x的一个特征属性。
(2)有类别集合C={y 1 ,y 2 ,…,y n }
(3)计算P(y 1 |x),P(y 2 |x),…,P(y n |x)。
(4)如果P(y k |x)=max{P(y 1 |x),P(y 2 |x),…,P(y n |x)},则x∈y k 。
现在的关键就是如何计算上述(3)中的各个条件概率。可以这么做:
① 找到一个已知分类的待分类项集合,这个集合叫作训练样本集。
② 统计得到在各类别下各个特征属性的条件概率估计。即:
③ 如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
因为分母对于所有类别为常数,只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
整个朴素贝叶斯分类可分为三个阶段:
第一阶段是准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量在很大程度上由特征属性、特征属性划分及训练样本质量决定。
第二阶段是分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果进行记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,可以由程序自动计算完成。
第三阶段是应用阶段。这个阶段的任务是使用分类器对分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。
根据上述分析,朴素贝叶斯分类的流程可以由图3-4表示。
朴素贝叶斯分类在实际生活中的应用很广,如天气预报、金融投资、保险业等。下面介绍朴素贝叶斯分类在商业中的应用,训练样本如表3-6所示,该应用中收集的数据是关于客户购买电脑的可能性,通过对客户有用指标的统计,并利用朴素贝叶斯分类模型进行计算和分析,得出相应的结果。训练样本有4个关键属性:A={年龄,收入,是否学生,信用评级},类标签属性 C 为是否会购买电脑,C 有两个不同的值,分别为“是”和“否”。
图3-4 朴素贝叶斯分类的流程图
表3-6 “电脑购买预测”的训练样本
待预测样本 X=(年龄=“<=30”,收入=“中等”,是否学生=“是”,信用等级=“一般”)。
由表格中数据可知:
P(年龄=“<=30”|是否购买电脑=“是”)=2/9=0.222
P(年龄=“<=30”|是否购买电脑=“否”)=3/5=0.6
P(收入=“中等”|是否购买电脑=“是”)=4/9=0.444
P(收入=“中等”|是否购买电脑=“否”)= 2/5 = 0.4
P(是否学生=“是”|是否购买电脑=“是”)=6/9=0.667
P(是否学生=“是”|是否购买电脑=“否”)= 1/5 = 0.2
P(信用等级=“一般”|是否购买电脑=“是”)=6/9=0.667
P(信用等级=“一般”|是否购买电脑=“否”)= 2/5 = 0.4
P (X|C i ):P(X|是否购买电脑=“是”)=0.222 × 0.444 × 0.667 × 0.667=0.044
P(X|是否购买电脑=“否”)=0.6×0.4×0.2×0.4=0.019
P(X|C i )×P(C i ):
P(是否购买电脑=“是”)=9/14=0.643
P(是否购买电脑=“否”)=5/14=0.357
P(X|是否购买电脑=“是”)×P(是否购买电脑=“是”)=0.044 × 0.643=0.028
P(X|是否购买电脑=“否”)×P(是否购买电脑=“否”)=0.019 × 0.357=0.007
X属于类“是否购买电脑‘是’”。
在现实生活中,类似这样的例子还有很多。只要分好预测样本,运用好贝叶斯定理,就可取得相应的结果。
贝叶斯分析的思路对于由证据的积累来推测一个事物发生的概率具有重大作用,它告诉我们,当要预测一个事物,需要的是首先根据已有的经验和知识推断一个先验概率,然后在新证据不断积累的情况下调整这个概率。整个通过积累证据来得到一个事件发生概率的过程称为贝叶斯分析。
贝叶斯分析中的三要素,即贝叶斯统计三要素,一要素是先验概率P(A),二要素是条件概率P(A|B),最终得到三要素即后验概率P(B|A)。在不同的问题中通常有侧重点,很多时候都在忽略先验概率的作用,比如描述一个人很书呆子气让你判断他是大学老师还是销售员的经典案例(要看先验大学老师还是销售员哪个多)。但是有时候也不理解条件概率,比如著名的辛普森案,为了证明辛普森有杀妻之罪,检方说辛普森之前家暴,而辩护律师说,美国有400万女性被丈夫或男友打过,而其中只有1432人被杀,概率是2800分之一。这其实是误用了后验概率,这里的条件是被杀且有家暴,而要推测的事件是凶手是男友(事实上概率高达90%),这才是贝叶斯分析的正当用法,而辩护律师却完全在混淆条件与要验证的假设。
理解贝叶斯分析最好的方法即图像法,如图3-5所示。这里的 A(圈 AB 的左边为A)的面积即先验,后验是阴影占圈B(圈AB的右边为B)的百分比。
贝叶斯分析可以瞬间理解一些常用的理论,如幸存者偏差,你发现一些没读过书的人很有钱,事实是你发现时他们就已经是幸存者了(对应图3-5中圈A)。还有阴谋论,阴谋论的特点是条件很多很复杂,但是条件一旦成立,结论几乎成立,你一旦考虑了先验,这些条件成立本身就很困难,阴谋论就不攻自破了。
图3-5 贝叶斯分析的图像法
注:图中圈A和圈B的面积,很少在开始就知道,这才是应用中的难点。
此处贝叶斯分析的框架也在教导我们如何处理特例与一般常识的规律。如果太注重特例(完全不看先验概率),很有可能会误把噪声看作信号,而奋不顾身地跳下去。而如果恪守先验概率,就会成为无视变化而墨守成规的人。
在贝叶斯统计分析的基础上,可引出一个更核心的概念——贝叶斯决策。贝叶斯决策主要包含4个部分:数据(D)、假设(W)、目标(O)和决策(S)。
此处的数据即证据,假设是要验证的事实,目标是最终要取得优化的量,决策是根据目标得到的最后行为。贝叶斯决策步骤如表3-7所示。
表3-7 贝叶斯决策步骤
贝叶斯决策如果一旦变成自动化的计算机算法,它就是机器学习。用贝叶斯决策诠释一个最简单的机器学习分类算法,这就是朴素贝叶斯。