通过《统计学习方法》第4章了解朴素贝叶斯分类器基本原理,同时,“龙心尘”关于朴素贝叶斯的三篇博文也受益匪浅。博客地址:http://blog.csdn.net/longxinchen_ml/article/details/50597149
本文总结朴素贝叶斯的基本原理。
刚看过贝叶斯估计,朴素贝叶斯分类和贝叶斯估计虽然都是基于贝叶斯规则,但是还是有很(jian)大(dan)差(duo)别(le)的。
首先来看看贝叶斯定理:
朴素贝叶斯分类器可以看成是无参学习算法,因此,这里没有讲参数表示出来。依然是通过先验概率计算后验概率,只是先验不再是参数的先验分布,而是结果的先验概率。用于分类,则可以表示为:
上式可以转换为
要预测当前x现象下,结果Y为的概率,那么,需要对已有的总体样本做统计计算出,前者可直接统计到,后者则需要一些运算。
对于多维特征矩阵X来说:
贝叶斯的朴素在于,假设各维特征之间是相互独立的,这样,
将式(2)带入到式(1),那么我们需要找到各维特征的所有组合,然后计算每种组合在样本中的数量,其中有大量的判断,很麻烦。
将式(3)带入式(1),
上式就是朴素贝叶斯的基本公式。
只需要将各维特征的各特征值的条件概率计算出来就好了。
这样说,好像也看不出到底有多简化呢,那么举个例子看看吧。
用堵车来形容,假设堵车只由“路况”、“车流量”和“天气”这三维特征决定,这三维特征的取值如下表:
上表中,结果类型值为“堵车”(c1)、“通畅”(c2)两类。
假设上班前打开“某度地图”看了一下,发现你要经过的地方发生交通事故了,路上车流量一般,同时今天又下雨了,你想预估你上班路上是否会遇到堵车。
假设我们能拿到全国所有相同道路全年的路况、车流、天气情况,以及是否堵车的数据,由于数据量大,随机抽取N个样本(N足够大)为数据集,根据样本数据集,统计这样的同等道路下。
按照式(2)计算的话,如果在训练过程中,计算各种情况下出现堵车和不堵车的概率,三维特征共有组合,共有45种组合,也就是说要对N各样本遍历45次,而按照式(2)计算,只需要遍历11次,且遍历条件更简单。所以,朴素贝叶斯加入条件独立特性,简化了很多。但是,用朴素贝叶斯需要对特征工程中各维特征的相互独立性比较自信才行。
按照式(4)计算这个例子。假定统计结果如下:
堵车的样本数为a,通畅的样本数为(N-a),堵车的经验概率为a/N;
在堵车的样本中,统计到
不堵车情况按照同样的方式统计,那么
由于这是二分类,另一类的概率为
作为分类器的话,将概率最大的一类作为预测类型。
对于所有的,式(4)分母都是相同的,因此,似然函数为分子:
由于没有分母,计算出来的可能都很小,各类型概率相加极有可能不等于1,这对分类没有影响,但是也没有什么别的实际意义。