朴素贝叶斯

朴素贝叶斯分类算法

贝叶斯定理

定理本身一目了然:\(P(A|B) = P(B|A) * P(A)/P(B)\)

用语言解释就是:在B出现的前提下,A出现的概率等于A和B都出现的概率除以B出现的概率。

换句话说就是后验概率和先验概率的关系。

例子

假设一个学校里有60个男生和40个女生。女生有一半人穿裤子,另一半人穿裙子;所有男生穿裤子。一个人在远处随机看到了一个穿裤子的学生。那么这个学生是女生的概率是多少?[1]

使用贝叶斯定理,事件A是看到女生,事件B是看到一个穿裤子的学生。我们所要计算的是\(P(A|B)\)。

\(P(A)\)是忽略其它因素,看到女生的概率,在这里是40%
\(P(A’)\)是忽略其它因素,看到不是女生(即看到男生)的概率,在这里是60%
\(P(B|A)\)是女生穿裤子的概率,在这里是50%
\(P(B|A’)\)是男生穿裤子的概率,在这里是100%
\(P(B)\)是忽略其它因素,学生穿裤子的概率,\(P(B) = P(B|A)P(A)+P(B|A’)P(A’)\),在这里是0.5×0.4+1×0.6 = 0.8.

根据贝叶斯定理,我们计算处后验概率\(P(A|B)\)

朴素贝叶斯概率模型

理论上,概率模型分类器是一个条件概率模型。[2]

独立的类别变量 \(C\)有若干类别,条件依赖于若干特征变量\(F_1,…,F_n\)。 贝叶斯定理有以下式子:

用朴素的语言可以表达为:

实际中,我们只关心分式中的分子部分,因为分母不依赖于\(C\)而且特征 \(F_i\)的值是给定的,于是分母可以认为是一个常数。这样分子就等价于联合分布模型\(P(C,F_1,…,F_n) \)
现在“朴素”的条件独立假设开始发挥作用:假设每个特征\(F_i\)对于其他特征 \(F_j\), \(i\neq j\)是条件独立的。这就意味着

这意味着上述假设下,类变量 \(C\)的条件分布可以表达为:

其中\(Z\)(证据因子)是一个只依赖与\(F_1,…,F_n\)等的缩放因子,当特征变量的值已知时是一个常数。

从概率模型中构造分类器

讨论至此为止我们导出了独立分布特征模型,也就是朴素贝叶斯概率模型。朴素贝叶斯分类器包括了这种模型和相应的决策规则。一个普通的规则就是选出最有可能的那个:这就是大家熟知的最大后验概率(MAP)决策准则。相应的分类器便是如下定义的分类公式:

后验最大化的含义(期望风险最小化)

在选择0-1损失函数的情况下,期望风险指的是[3]

式中\(f(X)\)是分类决策函数,这是,期望风险函数是:

期望风险函数指的是预期与实际结果不一样个数的期望

期望是对联合分布\(P(X,Y)\)取的,由此取条件期望:

为了使经验风险最小化,只需对\(X=x\)逐个极小化,由此得到:

\((1)\)表示使预期与结果不一致的个数最少,\((2)\)表示使预期与结果一致的个数最多。两式表达的意思一样

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则

参数估计

极大似然估计

维基百科:最大似然估计

详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

贝叶斯估计(拉普拉斯平滑)

贝叶斯方法的优缺点[6]

优点

  1. 对待预测样本进行预测,过程简单速度快(想想邮件分类的问题,预测就是分词后进行概率乘积,在log域直接做加法更快)。
  2. 对于多分类问题也同样很有效,复杂度也不会有大程度上升。
  3. 在分布独立这个假设成立的情况下,贝叶斯分类器效果奇好,会略胜于逻辑回归,同时我们需要的样本量也更少一点。
  4. 对于类别类的输入特征变量,效果非常好。对于数值型变量特征,我们是默认它符合正态分布的。

缺点

  1. 对于测试集中的一个类别变量特征,如果在训练集里没见过,直接算的话概率就是0了,预测功能就失效了。使用平滑操作可以缓解这个问题,最常见的平滑技术是拉普拉斯估测。
  2. 那个…咳咳,朴素贝叶斯算出的概率结果,比较大小还凑合,实际物理含义…恩,别太当真。
  3. 朴素贝叶斯有分布独立的假设前提,而现实生活中这些predictor很难是完全独立的。

参考资料

[1]理解贝叶斯,后验概率的最佳例子
[2]维基百科:朴素贝叶斯分类器
[3]李航 (2012) 统计学习方法. 清华大学出版社, 北京.
[4]维基百科:最大似然估计
[5]详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
[6][NLP系列(4)_朴素贝叶斯实战与进阶][https://blog.csdn.net/han_xiaoyang/article/details/50629608]