《机器学习》-- 第七章 朴素贝叶斯

Posted 零维领域

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《机器学习》-- 第七章 朴素贝叶斯相关的知识,希望对你有一定的参考价值。


正文共:3478 字 18 图  预计阅读时间:11 分钟

前文推送

  1. -- 第三章 (下)


  2. -- 第五章 



本文目录:
  • 7.1 贝叶斯决策论

  • 7.2 极大似然估计

  • 7.3 朴素贝叶斯分类器



七、贝叶斯分类器

贝叶斯分类器是一种概率框架下的统计学习分类器,对分类任务而言,假设在相关概率都已知的情况下,贝叶斯分类器考虑如何基于这些概率为样本判定最优的类标。

贝叶斯公式(定理):设 为样本空间的一个划分, 为 S 中的任意事件, 且 则恒有

该公式的含义是在观察到事件B已发生的条件下,寻找导致B发生的每个原因( )的概率。

7.1 贝叶斯决策论

贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法。对分类任务来说, 在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。

假设有 种可能的类别标记, 即 是将一个真实标记为 的样本误分类为 所产生的损失。基于后验概率 可获得将样本 分类为 所产生的期望损失(expected loss),即在样本 上的“条件风险”(conditional risk)

我们的任务是寻找一个判定准则 以最小化总体风险

《机器学习》-- 第七章 朴素贝叶斯

即寻找一个判定准则最小化所有样本的条件风险总和,因此就有了「贝叶斯判定准则」(Bayes decision rule):为最小化总体风险,只需在每个样本上选择那个使得条件风险最小的类标。

《机器学习》-- 第七章 朴素贝叶斯

此时, 称为贝叶斯最优分类器(Bayes optimal classifier),与之对应的总体风险 称为贝叶斯风险(Bayes risk). 反映了分奖器所能达到的最好性能,即通过机器学习所能产生的「模型精度的理论上限」。

具体来说,如若损失函数 取0-1损失,则有:

《机器学习》-- 第七章 朴素贝叶斯

此时条件风险

于是,最小化分类错误率的贝叶斯最优分类器为

《机器学习》-- 第七章 朴素贝叶斯

即对于每个样本 ,选择其 后验概率  最大所对应的类标,能使得总体风险函数最小,从而将原问题转化为估计后验概率 。然而, 在现实任务中这通常难以直接获得。从这个(概率)角度来看, 机器学习(有些机器学习技术无需估计后验概率就能准确分类)所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 。大体来说,主要有两种策略来对后验概率进行估计:

  1. 给定 可通过直接建模 来 预测 , 这样得到的是“判别式模型”(discriminative models); (决策树、BP 神经网络、支持向量机等, 都可归入判别式模型的范畴)
  2. 可先对联合概率分布 建模, 然后再由此获得 这样得到的是“生成式模型”(generative models). (贝叶斯分类器)

对于生成模型来说,必然考虑贝叶斯定理:

《机器学习》-- 第七章 朴素贝叶斯

其中,

  • 是类“先验”(prior)概率,表达了样本空间中各类样本所占的比例, 根据大数定律, 当训练集包含充足的独立同分布样本时, 可通过各类样本出现的频率来进行估计;
  • 是样本 相对于类标记 的类条件概率(class-conditional probability), 或称为“似然” (likelihood);
  • 是 用于归一化的“证据”(evidence)因子。对给定样本 证据因子 与类标记无关(对所有类标记相同)。因此估计 的问题就转化为如何基于训练数据 来估计先验 和似然

实际上先验概率就是在没有任何结果出来的情况下估计的概率,而后验概率则是在有一定依据后的重新估计,直观意义上后验概率就是条件概率。

对类条件概率  来说,由于涉及关于 所有属性的联合概率,直接根据样本出现的频率来估计是非常困难的。例如, 假设样本的 d 个属性都是二值的, 则样本空间将有   种可能的取值, 在现实应用中, 这个值往往远大于训练样本数 m, 也就是说, 很多样本取值在训练集中根本没有出现, 直接使用频率来估计 c) 显然不可行, 因为“未被观测到”与“出现概率为 ”零” 通常是不同的。一种常用的策略是先假定类条件概率具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。

7.2 极大似然法

源自频率学派的极大似然估计(Maximum Likelihood Estimation,简称MLE),是一种根据数据采样来估计概率分布的经典方法。(频率主义学派(Frequentist)认为参数虽然未知, 但却是客观存在的固定值, 因此, 可通过优化似然函数等准则来确定参数值)

具体地, 记关于类别 c 的类条件概率为 假设 具有确定的形式并且被参数向量 唯一确定, 则我们的任务就是利用训练集 估计参数 为明确起见, 我们将 记为

极大似然法的核心思想就是:在参数的所有可能取值当中,找到能使已知样本出现的概率(可能性)最大的值,即使得训练数据的似然最大的参数值。

表示训练集 中第 类样本组成的集合, 假设这些样本是独立同分布的, 则参数 对于数据集 的似然是

《机器学习》-- 第七章 朴素贝叶斯

进行极大似然估计, 就是去寻找能最大化似然 的参数值 式(7.9)中的连乘操作易造成下溢, 通常使用对数似然(log-likelihood)

《机器学习》-- 第七章 朴素贝叶斯

此时参数 的极大似然估计

《机器学习》-- 第七章 朴素贝叶斯

例如, 在连续属性情形下, 假设概率密度函数 则参数 的极大似然估计为《机器学习》-- 第七章 朴素贝叶斯也就是说, 通过极大似然法得到的正态分布均值就是样本均值, 方差就是 的均值, 这显然是一个符合直觉的结果。在离散属性情形下 , 也可通过类似的方式估计类条件概率。

所以,贝叶斯分类器的训练过程就是参数估计。总结最大似然法估计参数的过程,一般分为以下四个步骤:

* 1.写出似然函数;
* 2.对似然函数取对数,并整理;
* 3.求导数,令偏导数为0,得到似然方程组;
* 4.解似然方程组,得到所有参数即为所求。

需注意的是, 这种参数化的方法能使类条件概率估计变得相对简单, 但估计结果的准确性严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。在现实应用中, 欲做出能较好地接近潜在真实分布的假设, 往往需在一定程度上利用关于「应用任务本身的经验知识」, 否则若仅凭“猜测”来假设概率分布形式, 很可能产生误导性的结果.

7.3 朴素贝叶斯分类器

不难看出:原始的贝叶斯分类器(上述公式7.7)估计后验概率的困难点在于类条件概率是所有属性的联合概率,首先需要根据经验来假设联合概率分布;其次当属性很多时,训练样本往往覆盖不够,参数的估计会出现很大的偏差。为了避免这个问题,朴素贝叶斯分类器(naive Bayes classifier)采用了“属性条件独立性假设”(attribute conditional independence assumption),即「样本数据的所有属性之间相互独立」。这样类条件概率 可以改写为:

其中 d 为属性数目, 在第 个属性上的取值(实际上是属性-值 形式的键值对)

由于对所有类别来说 相同, 因此基于式(7.6)的贝叶斯判定准则有

《机器学习》-- 第七章 朴素贝叶斯

这就是朴素贝叶斯分类器的表达式。

显然, 朴素贝叶斯分类器的训练过程就是基于训练集 来估计类先验概率 并为每个属性估计条件概率 表示训练集 中第 类样本组成的集合, 若有充足的独立同分布样本, 则可容易地估计出类先验概率

这样,为每个样本估计类条件概率变成为每个样本的每个属性估计类条件概率。 表示 中在第 个属性上取值为 的样本组成的集合。

《机器学习》-- 第七章 朴素贝叶斯

相比原始贝叶斯分类器,朴素贝叶斯分类器基于单个的属性计算类条件概率更加容易操作,需要注意的是:若某个属性值在训练集中和某个类别没有一起出现过,这样会抹掉其它的属性信息,因为该样本的类条件概率被计算为0。

例如,在使用西瓜数据集 3.0 训练朴素贝叶斯分类器时, 对一个“敲声=清脆”的测试例,有

由于式( 的连乘式计算出的概率值为零, 因此, 无论该样本的其他属性是什么, 哪怕在其他属性上明显像好瓜, 分类的结果都将是“好瓜=否”, 这显然不太合理。

因此在估计概率值时,常常进行平滑(smoothing)处理,拉普拉斯修正(Laplacian correction)就是其中的一种经典方法,具体来说,令 表示训练集 中可能的类别数, 表示第 个属性可能的取值数:

当训练集越大时,拉普拉斯修正引入的影响越来越小。拉普拉斯修正实质上假设了属性值与类别均匀分布, 这是在朴素贝叶斯学习过程中额外引入的关于数据的先验.

在现实任务中朴素贝叶斯分类器有多种使用方式。例如, 若任务对预测速度要求较高, 则对给定训练集, 可将朴素贝叶斯分类器涉及的所有概率估值事先计算好存储起来, 这样在进行预测时只需“查表”即可进行判别; 若任务数据更替频繁, 则可采用“懒惰学习” (lazy learning) 方式, 先不进行任何训练,待收到预测请求时再根据当前数据集进行概率估值; 若数据不断增加, 则可在现有估值基础上, 仅对新增样本的属性值所涉及的概率估值进行计数修正即可实现增量学习。

针对朴素贝叶斯,人们觉得它too sample,sometimes too naive!因此又提出了半朴素的贝叶斯分类器,具体有SPODE、TAN、贝叶斯网络等来刻画属性之间的依赖关系。

一个例子:

用西瓜数据集 3.0 训练一个朴素贝叶斯分奖器,

可得类先验概率为

然后是每个属性的条件概率

于是




https://github.com/firewang/lingweilingyu/blob/master/contents/Machine_Learning_Zhi-Hua_Zhou.md

(喜欢的话,Star一下)


参考网址:

  • 周志华 著. 机器学习, 北京: 清华大学出版社, 2016年1月.

  • https://github.com/Vay-keen/Machine-learning-learning-notes

PS:

1. 后台回复“线性代数”,“SQL” 等任一关键词获取资源链接

2. 后台回复“联系“, “投稿“, “加入“ 等任一关键词联系我们

3. 后台回复 “红包” 领取红包

零维领域,由内而外深入机器学习

dive into machine learning

英文ID:lingweilingyu

以上是关于《机器学习》-- 第七章 朴素贝叶斯的主要内容,如果未能解决你的问题,请参考以下文章

机器学习——朴素贝叶斯算法

机器学习基础:朴素贝叶斯小结

机器学习:贝叶斯分类器——高斯朴素贝叶斯分类器代码实现

Python机器学习(十五)朴素贝叶斯算法原理与代码实现

机器学习--朴素贝叶斯算法原理方法及代码实现

温州大学《机器学习》课程代码朴素贝叶斯