0%

【机器学习自学笔记4】朴素贝叶斯分类器

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。

贝叶斯公式

根据贝叶斯公式,如果已知一个实例的特征,要求该实例属于哪个类别的概率最大,只需要知道该特征在每个类别种的概率即可!

即根据先验概率求解后验概率。 这就是贝叶斯分类的核心思想

朴素贝叶斯分类

已知数据集

颜色 响声 甜度 好瓜
青绿 浑浊 不甜 不是
青绿 浑浊 不甜 不是
青绿 清脆
青绿 浑浊 不甜 不是
深绿 清脆
深绿 浑浊
深绿 浑浊 不甜
深绿 清脆
深绿 清脆

给出问题,如果已知有一个瓜的特征 = {深绿,清脆,不甜},这个瓜是不是好瓜?

这是典型的后验概率问题,可以通过贝叶斯公式转换为对先验概率的求解问题: 绿绿绿 如果数据集的几个特征相互独立,则上述公式可以变换为: 绿

绿绿

这样一来,问题就变得非常容易求解。

根据数据集求出各个概率: 绿

绿

绿

同理 绿 因此,深绿、清脆、不甜的瓜是好瓜的概率更大。

朴素贝叶斯分类为什么朴素

那么,何为朴素贝叶斯分类中的朴素

注意到,我们上面的计算基于各特征间相互独立的假设,这是一个较强的假设。

朴素一词对应英文中的 naive,即天真,意思是这种想当然的假设是非常天真的,在现实生活中,这种特征相互独立的情况几乎不存在。

之所以要假设特征间相互独立,有两个原因:

  • 减少计算量
  • 同时满足各个特征的样本难以寻找甚至不存在,无法保证充足的样本

拉普拉斯修正

朴素贝叶斯分类有一个问题:如果计算中有一个概率出现 0,会导致什么?

答:结果为 0 或无法计算。

这显然不是我们想要的结果!

为了解决这个问题,可以引入拉普拉斯修正对概率进行平滑化处理:

  • |D|表示数据集的样本个数
  • N 表示数据集结果拥有的类别数
  • 表示该特征拥有的类别数

已知数据集

颜色 响声 甜度 好瓜
青绿 浑浊 不甜 不是
青绿 浑浊 不甜 不是
青绿 清脆
青绿 浑浊 不甜 不是
深绿 清脆
深绿 浑浊
深绿 浑浊 不甜
深绿 清脆
深绿 清脆

此时 绿 这将导致分类计算结果为 0. 进行拉普拉斯修正 绿 这种平滑化处理就避免了分类结果为 0 的情况。