贝叶斯分类器算法原理
目录
1.1,什么是朴素贝叶斯
1.2,极大似然估计
1.3,朴素贝叶斯分类器
1.4,朴素贝叶斯算法就程
1.5,朴素贝叶斯的优缺点
1.1,什么是朴素贝叶斯
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数,要么是决策条件分布
,但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布
,然后由
得出分类的结果。
贝叶斯决策论(Bayesian decision theory)是概率框架下实施决策的基本方法,对于分类问题来说,基于贝叶斯的分类器都是在概率已知的理想情况下,贝叶斯决策论考虑如何基于概率和误判损失来标记数据的类别,朴素贝叶斯法(Naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入 ,利用贝叶斯定理求出后验概率最大的输出
。
假设有种可能的类别标记,即
,
是将一个真实标记为
的样本误分类为
所产生的损失,基于后验概率
可以获得将样本
分类为
所产生的期望损失,也即是在样本
上面的“条件风险”。(在这里的后验概率可以这样理解:在已知西瓜颜色,根蒂等的情况下,将此西瓜分类为
的条件概率)。
- 条件风险:
,这是将一个西瓜样本分类错误的条件风险。对于所有的数据样本集,我们的目标是想要最小化样本数据集的总体风险。
- 样本集总体的风险:
,也就是条件风险的期望值。
那么对于每一个样本数据集的条件风险,如果我们使得每一个样本的风险都达到最小化,那么我们的总体风险也必然是最小的,也就是最小化,那么这就产生了贝叶斯判定准则:为了最小化总体的风险,只需要在每一个样本上选择哪个能使条件风险
最小的类别标记:
,
被称为我们最优的贝叶斯分类器,与之对应的总体风险
被称为贝叶斯风险,1-
可以反映分类器所能达到的最好的性能。
现在假设我们的误判损失可以写成如下形式:
,,现在我们对于数据集的总体样本的条件风险可以写为:
,这个式子是根据我们单个样本的条件风险得来的。(证明过程如下)
但是现在不要忘记,在我们目前所做的工作上,我们都是假设所有的概率都是已知的情况,但是现实的数据集特征很多,并且对于每一个特征,里面的取值也很多,所以我们要取得后验概率很难计算出来。计算后验概率有两种方式,第一种是对于给定的数据集,我们可以直接通过建模
来直接的预测我们的标签类别
,这种预测方式称为判别式,另外一种是先对联合概率
进行建模,然后由此来获得我们的后验概率
,这种预测方式称为生成式模型。对于生成式模型,我们必然要考虑:
- 条件概率:
- 贝叶斯定理,
也可以写为:
其中称为先验概率,可以根据我们的数据集通过频率来直接计算出来,比如西瓜的好和坏,我们可以通过统计个数进行统计出来,
是样本
相对于类标记
条件下的类条件概率,比如我现在确定我们的西瓜是好瓜的前提下,那么我们西瓜的颜色是青绿色的概率,
与我们的类别标记无关,因此估计
的问题最后就被我们转化为基于训练的数据集估计先验概率和条件概率
的问题。(先验概率,根据我们的大数定律,在样本数据集很多的情况下,我们可以使用频率进行估计),但是对于我们的后验概率,由于我们的样本有很多的特征,每一个特征对应于很多的取值,但是在每一个取值的样本对应的数量可能不是很多,所以我们此时不能使用频率进行估计。下面介绍如何估计我们的条件概率。
1.2,极大似然估计
估计类条件概率,一种常用的策略是先假设数据集具有某一种概率分布,在基于训练的样本对概率分布的参数进行估计,关于类别的类条件概率是
,假设
具有确定的形式并且被参数向量
唯一确定,那么我们的任务就是利用训练集
估计参数
。
令标示训练集
中第
类样本组成的集合,假设样本是独立同分布的,那么估计参数
对于数据集
的似然是:
,之所以采用连乘,是因为假设我们各个样本之间式相互独立的。现在我们要对
进行似然估计,就是要寻找能最大化似然函数的的参数值
。数据计算过程中,可能造成数据产生下溢,所以我们常常采用对数似然。
,此时参数
的极大似然估计是:
,通过极大似然估计,我们可以求得样本的均值和方差,然后对于连续性属性,我们可以直接带入公式求得概率。
1.3,朴素贝叶斯分类器
- 基于贝叶斯公式
来估计后验概率
的困难在于类条件概率
是所有属性的联合概率,很难从有限的训练数据集上直接获得,所以朴素贝叶斯采用了“属性条件的独立性假设”来估计,也就是对于所有的属性,假设为相互的独立,不对分类的结果产生任何的影响。基于属性独立性假设,:
,其中
标示属性的个数,
为
在第
个属性上面的取值。对于所有的类别来说,
是相同的,我们的最小化分类错误率的贝叶斯最优分类器可以表示为:
。朴素贝叶斯的训练过程就是基于训练数据集,先根据大数定律估算先验概率,在为每一个属性估算条件概率。
表示训练集
中第
类样本组成的集合(
其实就是代表我们的每一种类别),如果样本足够充分,那么我们的先验概率可以表示为:
,对于离散的属性而言,让
表示
中在第
个属性上取值为
的样本组成的集合,我们可以表示出后验概率:
,如果是对于连续性数值,我们可以考虑密度函数,假定
,其中的
和
代表第
类样本在第
个属性上面的均值和方差。
。
特别注意,如果某个属性的值在训练数据集中没有与某一个类同时出现过,根据我们上面的条件概率估计,会出现概率为0的情况,因此无论该样本的其他属性的情况是什么样,结果可能都不是很合理,为了避免这种情况,在我们估计概率的值的时候,通常要进行平滑处理,常用拉普拉斯修正的方法,令标示训练集
中可能出现的类别数目,
标示第
个属性可能的取值数,因此我们的先验概率和后验概率被标示为:
- 先验概率:
,对于我们某一种类别,令其样本的个数+1,但是对于总体的样本,每一个分类都要+1,也就是分母需要加
,这个
就代表分类的个数。
- 条件概率:
,在这里分母上加的也是第
个属性的分类的总数量。
1.4,朴素贝叶斯算法就程
我们假设训练的数据集有个样本和
个维度,一共有
个特征的输出类别,分别是
,每一个特征输出的类别的样本个数为
,在第
个类别中,如果是离散的特征,那么特征
各个类别的取值为
,
取值为1,2,3....
,
为特征
不同的取值数。算法输出为样本集
的分类结果。
算法流程:
- 如果没有先验概率,那么就先计算
的
个先验概率。
,否则
输出为先验概率。
- 分别计算第
个类别的第
维特征的第
个取值的条件概率。
- 如果是离散值,
,
可以取值为1或者其他大于0的数字。
- 如果是稀疏二项离散值,
,此时
只有两种取值。
- 入过是连续值不需要计算各个
的取值概率,直接求正态分布的参数。
,需要求出
和
,这两个量分别代表均值和方差。
- 对于数据集
,分别计算
的概率。
- 最后确定数据集的分类结果,
.
- 在整个的计算过程中,没有复杂的矩阵运算,所以贝叶斯算法运算速度很快。
- 如果是离散值,
1.5,朴素贝叶斯的优缺点
优点:
- 在较少数据集的情况下仍然可以处理数据,可以处理多分类问题。
- 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
- 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。
- 对缺失数据不太敏感,算法也比较简单,常用于文本分类。
缺点:
- 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
- 需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
- 由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
- 对输入数据的表达形式很敏感。
参考资料:
[1]《机器学习》周志华著
[2] https://www.cnblogs.com/pinard/p/6069267.html
[3] https://www.cnblogs.com/pinard/p/6069267.html
贝叶斯分类器算法原理相关推荐
- 朴素贝叶斯分类器算法通俗讲解
首先会用到贝叶斯决策理论,说一下.贝叶斯决策理论的核心思想是:选择具有最高概率的决策.例如一个点(x, y),属于类别1的概率是p1(x, y),属于类别2的概率是p2(x, y),用贝叶斯决策理论来 ...
- 贝叶斯分类器算法及案例详解
作者:vicky_siyu 致谢:小龙快跑jly, 巧儿.克力,Esther_or so,雨佳小和尚,老实憨厚的叶子 本文是对贝叶斯分类器(包括朴素贝叶斯分类器,半朴素贝叶斯分类器及贝叶斯网络)算法的 ...
- 机器学习:伯努利朴素贝叶斯分类器(原理+python实现)
伯努利朴素贝叶斯分类器主要用于文本分类,下面我们以一个具体的例子,来讲述下伯努利朴素贝叶斯的原理和实现逻辑. 具体例子: 已知我们有八个句子以及每个句子对应的类别,即中性或侮辱性.那么再给出一个句子, ...
- 感知器算法原理详解及python实现
感知器算法PLA 感知器算法是对一种分类学习机模型的称呼,属于有关机器学习的仿生学领域中的问题,由于无法实现非线性分类而下马.但"赏罚概念(reward-punishment concept ...
- 机器学习(五)---贝叶斯分类器算法总结
1. 综述 1.1贝叶斯分类器 贝叶斯决策论是概率框架下实施决策的基本方法.对分类任务来说,在所有概率都已经知道的理想情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记. 具体的说 ...
- (数据科学学习手札30)朴素贝叶斯分类器的原理详解Python与R实现
一.简介 要介绍朴素贝叶斯(naive bayes)分类器,就不得不先介绍贝叶斯决策论的相关理论: 贝叶斯决策论(bayesian decision theory)是概率框架下实施决策的基本方法.对分 ...
- 机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景
目录 引言 二.线性回归 三.逻辑回归 四.支持向量机 五.决策树 六.随机森林 七.K-均值聚类 八.主成分分析(PCA) 九.K近邻算法 十.朴素贝叶斯分类器 十一.神经网络 十二.AdaBoos ...
- 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题
本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...
- 朴素贝叶斯分类器原理解析与python实现
贝叶斯分类器是以贝叶斯原理为基础的分类器的总称,是一种生成式模型,朴素贝叶斯分类器是其中最简单的一种.要高明白贝叶斯分类器的原理,首先得明白一些基本概念. 预备知识 基本概念 先验概率:根据统计/经验 ...
最新文章
- 鸿蒙霸榜GitHub,从最初的Plan B到“取代Android”?
- 基于统计概率和机器学习的文本分类技术
- 关于算法的时间复杂度怎么计算
- spring18-3: 工厂bean代理-半自动
- ABAP实践学习——包材分配表
- Git 下载、安装与SSH配置
- 19天津大学计算机考研群,19天津大学金融专硕431经验贴
- hane nfs win 配置_NFS服务器HaneWin NFS Server
- vnc远程连接,5个步骤教你如何轻松实现vnc远程连接
- 扩展名是.ps的PostScript文件详解
- 暴躁兔让Web3与Crypto之路不再迷茫
- Qt示例解析 【Callout】
- Python PrettyTable 模块(美化库)
- 计算机管理无用怎么办,win7系统如何将资源管理器窗口中无用的图标删除掉?...
- MM采购定价条件记录表
- 爱情七十六课,门当户对
- TRIE树在输入法分词的应用
- 教育行业电商SaaS系统解决方案:助力企业实现经营、管理一体化
- 「String用法总结」
- centOS命令之ln
热门文章
- 每周一书《码农翻身(好玩有趣的编程知识)》分享!
- 【咖啡の知识】什么是精品咖啡
- Latex表格的标题左对齐、表格的一些设置
- php日文文件名 liunx,linux中文文件名不能访问,求教,在线等。
- 你还在为如何区分ASCII编码、GB2312编码、Unicod、UTF-8编码而烦恼吗,一篇文章让你柳暗花明...
- WEB主机没有正确返回“404”错误页面
- Typora页内跳转
- python对于一元线性回归模型_利用Python进行一元线性回归分析
- 向量的内积外积与其几何意义
- C++ STL源码 traits编程