朴素贝叶斯模型 | 更文挑战

190 阅读3分钟

“这是我参与更文挑战的第24天,活动详情查看: 更文挑战

贝叶斯分类是机器学习中应用极为广泛的分类算法之一,其产生自英国数学家贝叶斯对于逆概问题的思考。朴素贝叶斯是贝叶斯模型当中最简单的一种,其算法核心为如下所示的贝叶斯公式。

image.png

其中P(A)为事件A发生的概率,P(B)为事件B发生的概率,P(A|B)表示在事件B发生的条件下事件A发生的概率,同理P(B|A)则表示在事件A发生的条件下事件B发生的概率。

举一个简单的例子:已知冬季一个人感冒(事件A)的概率P(A)为40%,一个人打喷嚏(事件B)的概率P(B)为80%,一个人感冒时打喷嚏的概率P(B|A)为100%,那么如果一个人开始打喷嚏,他感冒的概率P(A|B)为多少?求解过程如下。

P(A|B)=(100%*40%)/80% = 50%

一维特征变量下的贝叶斯模型

如何判断一个人是否感冒。假设已经有5组样本数据,见下表。

image.png

为方便演示,这里只选取了一个特征变量“打喷嚏(X1)”,其值为1表示打喷嚏,为0表示不打喷嚏;目标变量是“感冒(Y)”,其值为1表示感冒,为0表示未感冒。

现在要根据上述数据,利用贝叶斯公式预测一个人是否感冒。例如,一个人打喷嚏了(X1=1),那么他是否感冒了呢?这个问题实际上是要预测他感冒的概率P(Y|X1)。将特征变量和目标变量代入贝叶斯公式,可获得如下所示的计算公式。

P(Y|X1)=(P(X1|Y)*P(Y))/P(X1)

根据上述数据,可以计算在打喷嚏(X1=1)的条件下,感冒(Y=1)的概率

P(Y=1|X1=1)=3/4

根据上述数据,可以计算在打喷嚏(X1=1)的条件下,感冒(Y=1)的概率

P(Y=0|X1=1)=1/4

因为3/4大于1/4,所以在打喷嚏的条件下感冒的概率要高于未感冒的概率。根据上述数据,可以计算在打喷嚏(X1=1)的条件下,感冒(Y=1)的概率

二维特征变量下的贝叶斯模型

现在加入另一个特征变量——头痛(X2),其值为1表示头痛,为0表示不头痛;目标变量仍为感冒(Y)。样本数据见下表。

image.png

根据上述数据,我们仍利用贝叶斯公式来预测一个人是否感冒。例如,一个人打喷嚏且头痛(X1=1,X2=1),那么他是否感冒了呢?这个问题实际上是要预测他感冒的概率P(Y|X1,X2)。将特征变量和目标变量代入贝叶斯公式,可获得如下所示的计算公式。

image.png

现在要计算并比较P(Y=1|X1,X2)与P(Y=0|X1,X2)的大小,由上述公式可知,两者的分母P(X1,X2)是相同的,所以直接计算并比较两者的分子P(X1,X2|Y)P(Y)的大小即可。

n维特征变量下的贝叶斯模型

我们可以在2个特征变量的基础上将贝叶斯公式推广至n个特征变量X1,X2,…,Xn,公式如下。

image.png