贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。
贝叶斯公式
根据贝叶斯公式,如果已知一个实例的特征,要求该实例属于哪个类别的概率最大,只需要知道该特征在每个类别种的概率即可!
即根据先验概率求解后验概率。
朴素贝叶斯分类
已知数据集
颜色 | 响声 | 甜度 | 好瓜 |
---|---|---|---|
青绿 | 浑浊 | 不甜 | 不是 |
青绿 | 浑浊 | 不甜 | 不是 |
青绿 | 清脆 | 甜 | 是 |
青绿 | 浑浊 | 不甜 | 不是 |
深绿 | 清脆 | 甜 | 是 |
深绿 | 浑浊 | 甜 | 是 |
深绿 | 浑浊 | 不甜 | 是 |
深绿 | 清脆 | 甜 | 是 |
深绿 | 清脆 | 甜 | 是 |
给出问题,如果已知有一个瓜的特征 = {深绿,清脆,不甜},这个瓜是不是好瓜?
这是典型的后验概率问题,可以通过贝叶斯公式转换为对先验概率的求解问题:
这样一来,问题就变得非常容易求解。
根据数据集求出各个概率:
故
同理
朴素贝叶斯分类为什么朴素
那么,何为朴素贝叶斯分类中的朴素?
注意到,我们上面的计算基于各特征间相互独立的假设,这是一个较强的假设。
朴素一词对应英文中的 naive,即天真,意思是这种想当然的假设是非常天真的,在现实生活中,这种特征相互独立的情况几乎不存在。
之所以要假设特征间相互独立,有两个原因:
- 减少计算量
- 同时满足各个特征的样本难以寻找甚至不存在,无法保证充足的样本
拉普拉斯修正
朴素贝叶斯分类有一个问题:如果计算中有一个概率出现 0,会导致什么?
答:结果为 0 或无法计算。
这显然不是我们想要的结果!
为了解决这个问题,可以引入拉普拉斯修正对概率进行平滑化处理:
- |D|表示数据集的样本个数
- N 表示数据集结果拥有的类别数
表示该特征拥有的类别数
已知数据集
颜色 | 响声 | 甜度 | 好瓜 |
---|---|---|---|
青绿 | 浑浊 | 不甜 | 不是 |
青绿 | 浑浊 | 不甜 | 不是 |
青绿 | 清脆 | 甜 | 是 |
青绿 | 浑浊 | 不甜 | 不是 |
深绿 | 清脆 | 甜 | 是 |
深绿 | 浑浊 | 甜 | 是 |
深绿 | 浑浊 | 不甜 | 是 |
深绿 | 清脆 | 甜 | 是 |
深绿 | 清脆 | 甜 | 是 |
此时