前言
关于写作:
博主(暂且如此自称)是北京某高校的计算机系研究生在读,入行AI领域时间不久,正在努力进修。最近利用工作之余的时间正在学习李航博士的《统计学习方法》,一方面希望能够通过写作整理思路,另一方面,分享学习心得也希望可以和志同道合的小伙伴们共同探讨进步啦~
github传送门:
GitHub - wyynevergiveup/Statistical-Learning-Method: 《统计学习方法》--李航 实现学习过程中的算法以加深理解
系列文章:
1.《统计学习方法》笔记(一) 统计学习及监督学习概论 - 简书
正文
4.1 朴素贝叶斯法的学习和分类
4.1.1 概述
朴素贝叶斯法是基于贝叶斯定理和特征条件独立假设的分类方法。
方法整体分成两个主要步骤:
1. 根据特征条件独立假设学习输入输出的联合概率分布;
2. 基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
那么,什么是特征条件独立假设呢?贝叶斯定理?
朴素贝叶斯法中提到的特征条件独立假设,具体来说就是说用于分类的特征在类确定的条件下都是条件独立的。即,
关于贝叶斯定理,这里只给出其基本公式和在朴素贝叶斯法中的应用。
贝叶斯定理基本公式:
在朴素贝叶斯法中的应用:
4.1.2 基本方法
4.1.2.1 数据集
设输入空间为n维向量的集合,输出空间为类标记集合。输入为特征向量,输出为类标记。是定义在输入空间上的随机变量,是定义在输出空间上的随机变量。是和的联合概率分布。训练数据集
是由独立同分布产生。
4.1.2.2 模型
朴素贝叶斯法属于生成模型,其实际要学习的是生成数据的机制,即。因此,实际要学习的是以下两个先验概率分布和条件概率分布,联合概率分布由二者对应相乘累加后求得。
先验概率分布:
条件概率分布:
联合概率分布:
先验概率分布往往通过统计的方法获得。
然而,条件概率分布包含了指数级数量的参数,其估计实际是不可行的。事实上,假设可取值有个, 可取值有,那么参数个数为。(这里的条件概率分布实际是离散分布列,待估的参数是每种情况下对应的概率值,因此待估的参数与所有可能出现的情况数量相同。)因此,朴素贝叶斯法对条件概率分布作了条件独立性的假设,由于这是一个较强的假设,“朴素”贝叶斯法也由此得名。具体地,条件独立假设是:
由此,条件概率分布的参数量降至。
4.1.3 后验概率最大化
朴素贝叶斯将样本实例预测为后验概率最大的类别。这实际上等价于期望风险最小化。
假设选择0-1损失函数:
式中是分类决策函数。这时,期望风险函数为
期望是对联合分布取的。由此取条件期望
其中,样本为时,预测类别为预测为,是样本真实类别时的损失;是的条件概率。为了使期望风险最小化,只需对逐个极小化,由此得到:
(*很关键!)
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
即朴素贝叶斯法所采用的原理。
4.2 朴素贝叶斯法的参数估计(算法)
4.2.1 极大似然估计
在朴素贝叶斯法中,学习意味着估计和。可以应用极大似然估计法估计相应的概率。
先验概率的极大似然估计是:
设第j个特征的取值的集合为,条件概率的极大似然估计是:
式中,是第个样本的第个特征;是第个特征的第个可能的取值;为指示函数(括号内条件满足时函数值为1,反之为0)。
4.2.2 学习和分类算法
4.2.3 贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为0的情况,这会影响后验概率的计算结果,使分类产生偏差。
首先,为什么会出现概率为0?其次,估计出的概率为0会对后验概率的计算产生怎样的影响?
由式(6)(7)可知,极大似然估计对先验概率和条件分布概率的估计实际是由数据集中出现的样本实例统计得来,而数据集在大多数情况下不可能覆盖所有可能出现的样本,因此,当某种情况的样本在数据集中未出现(其实现实世界存在这种样本,只是数量较少),极大似然估计得到的概率就是0。
举个简单的例子,假设数据集中没有满足条件下的样本,由式(7),的极大似然估计值为0。那么这会产生怎样的影响呢?
由式(1)(3)可知,最终的条件概率计算式是累乘的形式,其中一个因子为0会直接导致最终预测结果为0。这样一来,直接导致的结果是:对数据集的质量要求变高,即模型最终预测性能对数据集的质量是敏感的。训练集数据不充分的情况下,模型预测性能将受到显著影响。
为了缓解这一问题,朴素贝叶斯法中常使用的是贝叶斯估计法去做参数估计。
具体地,条件概率的贝叶斯估计是:
式中。等价于在随机变量各个取值的频数上赋予了一个正数。当时就是极大似然估计。常取,这时称为拉普拉斯平滑。显然对任何,有
确保式(8)确实为一种概率分布。同样,先验概率的贝叶斯估计是:
4.3 最大似然估计和贝叶斯估计的推导过程
4.3.1 最大似然估计
简单来说,最大似然估计就是根据已有样本,估计出分布中参数最有可能的取值(最大似然)。具体的方法介绍可自行百度,这里给出先验概率和最大似然概率最大似然估计的推导过程。(忽略我丑爆的字体...)
1.先验概率推导过程:
2.条件概率推导过程:
4.3.2 贝叶斯估计
贝叶斯估计与最大似然估计最大的不同就在于,贝叶斯估计将参数也视作随机变量。而最大似然估计将参数视作待估的定值,由观测到的样本去估计参数。
这里只给出条件概率的贝叶斯估计推导过程,先验概率比较简单,大家有兴趣可以参考先验概率的最大似然估计和条件概率的贝叶斯估计自行尝试推导。