今天梳理一下Naïve Bayes,即朴素贝叶斯。朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。
而关于贝叶斯定理,这个大学学过概率论的都比较熟悉,见下图:
其中:
Likelihood:似然度
Prior:先验概率
Normalization Constant:标准化常量
等号左侧:后验概率
更多的还得大家自己去温习一下了。
而今天我们讲到的是“朴素”的贝叶斯,这个定理有一个前提假设,便是:各个特征条件之间是相互独立,那么,“似然度”那块可以改写为:
基本的原理就是这样子了,但朴素贝叶斯可以用来做什么呢,上面也有讲到,用得比较多的就是分类预测了。
我们把上面讲到的最原始的公式进行“中文化”,得到下面的公式:(其中“特征”可以是N维)
现在有了基本的认识后,我们来看一下下面的例子应该就更加可以深入了解了(备注:例子来自网络,原文见链接)。
例子:
给定数据如下:
现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?
(明眼人一看就知道不嫁应该好过嫁,但怎么让机器也可以“学习”并给出准确的判断呢)
这是一个典型的分类问题,转为数学问题就是比较
p(嫁|(不帅、性格不好、身高矮、不上进))与
p(不嫁|(不帅、性格不好、身高矮、不上进))
的概率,谁的概率大,我就能给出嫁或者不嫁的答案!
转换为贝叶斯公式就是:
那么上面的公式,有一个假设就是特征之间是相互独立的,所以公式可以改写为:
那么,根据原始的数据,代入公式计算即可,这边算了一下,
p (不嫁|不帅、性格不好、身高矮、不上进)>p (嫁|不帅、性格不好、身高矮、不上进)。
所以我们根据朴素贝叶斯算法可以给这个女生答案,是不嫁!
朴素贝叶斯分类器的优缺点:
看完了例子,大家应该对这个朴素贝叶斯模型有了一定的认识了,最后说一下朴素贝叶斯分类模型的优缺点。
优点:
(1) 算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化医学即可!)
(2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)
缺点:
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
参考文献:
1)小象学院的《机器学习全新升级版》的课程内容,主讲人为秦曾昌老师
2)数学之美番外篇:平凡而又神奇的贝叶斯方法
http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/
3)贝叶斯推断及其互联网应用(一):定理简介
http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
4)带你搞懂朴素贝叶斯分类算法
https://blog.csdn.net/amds123/article/details/70173402