朴素贝叶斯算法是一种基于著名贝叶斯定理的分类算法。那么让我们先了解一下Bayes定理是怎么说的,并为朴素贝叶斯算法定理建立自己的理解,它是如何工作的,它为什么被称作朴素?
在深入研究贝叶斯定理之前,我们需要了解一些术语-
1. 独立事件和从属事件
1. 边际概率
1. 联合概率
1. 条件概率
独立事件和从属事件
考虑两个事件A和B。当事件A的发生概率不依赖于事件B的发生时,则A和B是独立的事件。例如,如果你有两枚普通硬币,那么两枚硬币的正面概率都是0.5。因此,事件是独立的。
现在考虑一个包含5个球的盒子-2个黑色和3个红色。先画一个黑球的概率是2/5。现在从剩下的4个球中再抽出一个黑球的概率是1/4。在这种情况下,这两个项目是依赖的,因为第二次画黑球的概率取决于第一次走时画的是哪个球。
边际概率
边际概率只是事件的概率,与其他随机变量的结果无关,例如P(A)或P(B)。
联合概率
联合概率是两个不同事件同时发生的概率,即两个(或更多)同时发生的事件,例如P(A和B)或P(A,B)。
条件概率
条件概率是给定另一事件发生的一个(或多个)事件的概率,换句话说,它是当次要事件B为真实事件A发生的概率,例如P(A给定B)或P(A | B)。
所以考虑前面的例子,一个盒子有3个红色和2个黑色的球。在第一次出发时捡到红球的概率为2/5。这是P(A)。现在,从剩下的3个红球和1个黑球中,再画一个黑球的概率是1/4,即P(B | A)。现在这是绘制一个黑球的条件概率,因为一个黑球已经在第一次执行时被绘制出来了,这是事件a。
如果我们把这两个概率相乘,我们会得到1/10,这是联合概率P(A,B)。
将上述方程中P(A,B)和P(B)的值代入,我们得到P(B | A)=1/4。所以1/4是当A已经发生时事件B的条件概率(依赖事件)。 同样,我们也可以将P(A | B)定义为:
现在我们很清楚P(A,B)=P(B,A)。因此,将我们得到的两个方程等价:
这里,P(B)是先验概率,P(A | B)是似然概率,P(A)是边际概率,P(B | A)是后验概率。
我们刚才讨论的Bayes定理非常简单,可以用于分类任务,无论是二分类还是多分类。
假设我们手头有一个分类机器学习问题。假设我们有5个特征X1,X2,X3,X4和X5,目标变量是Y。现在我们需要将数据拟合到这个Bayes定理中,这样它就能够预测Y类的概率,给定一组5个数据点(见Bayes规则的应用)。
我们得到上面的方程。这可以表现为:
这里π符号只是对似然概率的乘积求和。如果你仔细观察,分母或者边际概率对于所有的例子都是常数。因此,我们可以将上述等式的比例性定义为:
现在这将给出这两个类的概率。一个将更高(我们将其视为预测类),另一个将更低。因此,我们将使用它的argmax()来获取该值。
现在考虑使用下面的简单数据集,其中有两个表:Outlook(外出活动)和Temperature(温度)。这里的前景有三种可能性,即晴天、阴天和雨天,结果是肯定的/否定的人是否会打网球。
类似地,第二个表包含关于温度及其对结果是/否的影响的数据。
是与否的总概率如下:
现在面临的问题是,如果天气晴朗,气温炎热,我们需要确定这个人是否会参加比赛。或者根据概率,我们需要找到P(Yes|Today) ,今天在哪里(晴朗,炎热)。这里的天气和温度只是我们数据集的两个特征。所以方程变成:
通过插入上表中的值,求解P(Yes|Today)和P(No|Today)的上述值:
所以从概率上看,很明显 P(No|Today)更高,所以这个例子的预测是'No'。但是,这些不是类概率,你可能已经注意到它们加起来不等于1。因此,我们需要规范化上述条件概率,以获得类概率:
为了得到No的类概率,我们可以简单地从1中减去这个概率。因此,No的概率为1–0.27=0.73。 因此,算法将类预测为'否'。
现在,说到最重要的问题(也是本文的标题),这个朴素的贝叶斯分类器有什么'朴素'的呢?
在推导5个特征的数据集方程时,我们只需乘以各个特征的所有条件概率,比如P(X1 | Y)P(X2 | Y)….P(X5 | Y)。当我们假设特征相互独立时,我们只能把总的条件概率写成特征的个别条件概率的乘积。这是我们在这里做的'天真'假设,是为了让贝叶斯定理对我们有用。
但是,在现实生活中,当特性彼此独立时,几乎从来没有这种情况。功能中总是有某种依赖关系。例如,如果一个特征是一个人的年龄,而另一个特征是年薪,那么在大多数情况下都有明显的依赖关系。
然而,我们仍然继续把这个定理应用于分类问题,甚至文本分类,它的效果出奇的好!
作者:Chayan Kathuria
deephub翻译组
联系客服