背景
我们先举一个例子,关于向天上抛硬币的实验,有一个训练集 { h,t,x,t,t,t,t} 。那么我们通过这个训练集预测下一个抛的结果就应该是t,因为 P(t)=57 是最大的。
我们再举一个例子,现在有两种假设
1. 老师被外星人绑架了 — P(1)=0.00...01
2. 老师沉迷科研,忘了时间 — P(2)=0.99...99
现在老师上课迟到了,那么是什么原因呢?
1. P(late|1) = 1
2. P(late|2) = 0.15
如果仅仅从概率上来看,必然是因为假设1,因为其概率最大。
明显的,两个例子得出这样的结论是有问题的。因此我们不能仅仅考虑最简单的概率问题。
朴素贝叶斯就是一种正确地使用概率的方法。
朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤)。很多教材都从这些案例出发,本文就不重复这些内容了,而把重点放在理论推导,三种常用模型及其编码实现。
1 理论基础
朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类方法。
这里提到的贝叶斯定理、特征条件独立假设就是朴素贝叶斯的两个重要的理论基础。
1.1 贝叶斯定理
贝叶斯定理便是基于条件概率,通过 P(A|B) 来求 P(B|A) :
顺便提一下,上式中的分母 P(A) ,可以根据全概率公式分解为:
其中 P(B|A) 为posterior, P(B) 为priori, P(A|B) 为likelihood, P(A) 为evidence。
如果像背景中举的两个例子那样只依靠likelihood去进行判断,这种方式叫做Maximum Likelihood(ML);而朴素贝叶斯则是通过Maximum a-posterior(MAP)。
1.2 特征条件独立假设
这一部分开始朴素贝叶斯的理论推导,从中你会深刻地理解什么是特征条件独立假设。
给定训练数据集 (X,Y) ,其中每个样本x都包括n维特征,即 x=(x1,x2,x3,...,xn) ,类标记集合含有k种类别,即 y=(y1,y2,...,yk) 。
如果现在来了一个新样本 x ,使用MAP方法。
那么问题就转化为求解
那