朴素贝叶斯分类器(修改版)
2018-01-02 21:50
134 查看
一、引言
给定一个对象的集合,每一个对象用一个向量表示且属于一个类别,我们的任务是:构造一个规则,使得对于一个未曾见过但不具有类别标记的对象,该规则能为其确定类别。这类被称为“有监督分类”的问题非常普遍,相应的规则方法也已经很成熟了。
其中一个非常重要的方法就是朴素贝叶斯。朴素贝叶斯分类器是特征条件独立假设并基于贝叶斯定理的分类方法,它是一种传统的分类方法,有着较深的基础数学理论基础,这个方法非常受重视是因为:
它易于构造,模型参数的估计不需要任何复杂的迭代求解框架,非常适用于规模巨大的数据集;
它易于解释,即便是不熟悉分类计数的用户也能理解;
分类效果好,对于任何应用,它的分类效果即便不是最好的,也可能是最稳健的;
该方法的数学基础是贝叶斯定理和贝叶斯公式。
贝叶斯定理:随机事件A,B的条件或边缘概率的定理;
贝叶斯公式:用来描述两个条件概率之间的关系,
P(A⋂B)=P(A)⋅P(B|A)=P(B)⋅P(A|B)
注:
边缘概率:某个事件发生的概率与其他事件无关;
首先给出一些量的定义:
P(i|x)表示一个测量对象为x=(x1,x2,...,xp)的对象属于类别i的概率;
P(x|i)表述x关于类别i的条件分布;
P(i)为不知道对象自身任何信息的情况下该对象属于类别i的概率(即类别i的先验概率);
P(x)为类别的混合分布
很明显,如果对P(i|x)的估计能得到一个合适的分数,可以将之用于分类规则。
二、贝叶斯决策论
在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
假设有N种可能的类别标记,即Y={c1,c2,...,cN},λij是将一个真实标记为cj的样本误分类为ci所产生的损失。基于后验概率P(ci|x)可获得样本x分类为ci所产生的期望损失,即在样本x上的“条件风险”(在决策论中将期望损失称为风险):
注:
决策论将“期望损失”称为“风险”;
R(ci|x)=∑j=1NλijP(cj|x)
我们的任务是寻找一个判定准则h:χ→Y以最小化总体风险
R(h)=Ex[R(h(x))|x]
显然,对每个样本x,若h能最小化条件风险R(h(x)|x),则总体风险R(h)也将被最小化。这就产生了贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个使条件风险R(c|x)最小的类别标记:
h∗(x)=argminc∈YR(c|x)
此时,h∗称为贝叶斯最优分类器,与之对应的总体风险R(h∗)称之为贝叶斯风险,1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
若木表是最小化分类错误率,则λij可写为:
λij={01ifi=jotherwise
此时条件风险:
R(c|x)=1−P(c|x)
于是,最小化分类错误率的贝叶斯最优分类器为:
h∗(x)=argmaxc∈YP(c|x)
对每个样本x,选择能使后验概率P(c|x)最大的类别标记。
想要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率P(c|x),这通常难以直接获得。从这个角度出发,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率P(c|x)。事实上,很多机器学习方法无须准确估计后验概率就能准确进行分类。
大体来说,主要有两种策略:1.给定x,通过直接建模P(c|x)来预测c,这属于“判别式模型”;也可先对联合概率分布P(c,x)建模,然后再获得P(c|x),这属于“生成式模型”。对于后者,必然考虑:
P(c|x)=P(c)P(x|c)P(x)
类先验概率P(c)对所有类别标记均相同,可通过各类样本出现的频率进行估计。
类条件概率P(x|c)亦称之为”似然”,由于涉及x所有属性的联合分布,直接根据样本出现的频率进行估计将会遇到严重的困难。假设样本的d个属性都是二值的,则样本空间将有2d中可能性,很多取值在训练集中可能根本就没有出现,直接使用频率估计P(x|c)显然不可行,因为“未被观测到”与“出现概率为零”是不同的。
注:
联合概率P(AB)或者P(A⋂B):多元随机变量分别满足各自条件的概率
三、极大似然估计
概念理解:一般来说,时间A发生的概率与某一未知的参数θ有关,θ取值不同,则事件A发生的概率P(A|θ)也不相同,当我们在一次试验中事件A发生了,则认为此时的θ值应是其一切可能取值中使得P(A|θ)达到最大的那一个值,极大似然估计就是要找出这样的值作为参数θ的估计值,从而使得所选取的样本在数据集中出现的可能性最大。
最大似然估计是常用的参数估计方法之一,即已知某个随机样本满足某种概率分布,但是具体的参数未知,参数估计就是通过若干次实验通过其结果推测参数的大概值。
估计类条件概率的一种常用策略是:先假定类条件概率具有某种确定的概率分布形式,再基于训练数据集对概率分布的参数进行估计。具体地,即关于类别c的类条件概率为P(x|c),假设P(x|c)具有确实的形式并且被参数向量θc唯一确定,则我们的任务就是利用训练集D估计参数θc。将P(x|c)记为P(x|θc)。
事实上,概率模型的训练过程就是参数估计的过程。统计学派认为参数虽未知,但是客观存在的固定值,因此可通过优化似然函数来确定参数值;贝叶斯学派认为,参数也可能具有某种分布,可假设参数服从一个先验分布,然后基于观测到的数据来计算参数的后验概率。极大似然估计属于前者。
令Dc表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数θc对于数据集Dc的似然:
注:
独立同分布:在随机过程中,任何时刻的取值均为随机变量,如果这些随机变量服从同一分布,且相互独立,则这些变量是独立同分布的。
P(Dc|θc)=∏x∈DcP(x|Dc)
对θc进行极大似然估计就是寻找能使最大化似然P(Dc|θc)的参数θ^c。直观上看,极大似然估计是试图在θc所有可能的取值中找到一个能使数据出现的“可能性”最大的值。
对以上的连乘操作易造成下溢,通常使用对数似然:
LL(θc)=logP(Dc|θc)=∑x∈DclogP(x|θc)
此时参数的最大化似然估计θ^c为:
θ^c=argmaxθcLL(θc)
四、朴素贝叶斯分类器
基于贝叶斯公式估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的数据集或者训练样本中直接估计而得。为避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知的类别,假设属性相互独立,即每个属性独立的对分类结果产生影响。
由属性条件独立性假设可得:
P(c|x)=P(c)P(x|c)P(x)=P(c)P(x)∏i=1dP(xi|c)
对于所有的类别来说,P(x)相同,因此:
hnb(x)=argmaxc∈YP(c)∏i=1dP(xi|c)
这就是朴素贝叶斯分类器的思想。
基于训练数据集估计类先验概率P(c),并为每一属性估计条件概率P(xi|c)。
P(c)=|Dc||D|
如果属性是离散的:
P(xi|c)=|Dc,xi||Dc|
如果属性是连续的,可以考虑密度函数,假设
p(xi|c)∼N(μc,i,σ2c,i)
其中μc,i和σ2c,i分别是第c类样本在第i个属性上取值的均值和方差,则有:
p(xi|c)=12π−−√σc,iexp⎛⎝−(xi−μc,i)22σ2c,i⎞⎠
声明:本文内容引自周志华老师《机器学习》
给定一个对象的集合,每一个对象用一个向量表示且属于一个类别,我们的任务是:构造一个规则,使得对于一个未曾见过但不具有类别标记的对象,该规则能为其确定类别。这类被称为“有监督分类”的问题非常普遍,相应的规则方法也已经很成熟了。
其中一个非常重要的方法就是朴素贝叶斯。朴素贝叶斯分类器是特征条件独立假设并基于贝叶斯定理的分类方法,它是一种传统的分类方法,有着较深的基础数学理论基础,这个方法非常受重视是因为:
它易于构造,模型参数的估计不需要任何复杂的迭代求解框架,非常适用于规模巨大的数据集;
它易于解释,即便是不熟悉分类计数的用户也能理解;
分类效果好,对于任何应用,它的分类效果即便不是最好的,也可能是最稳健的;
该方法的数学基础是贝叶斯定理和贝叶斯公式。
贝叶斯定理:随机事件A,B的条件或边缘概率的定理;
贝叶斯公式:用来描述两个条件概率之间的关系,
P(A⋂B)=P(A)⋅P(B|A)=P(B)⋅P(A|B)
注:
边缘概率:某个事件发生的概率与其他事件无关;
首先给出一些量的定义:
P(i|x)表示一个测量对象为x=(x1,x2,...,xp)的对象属于类别i的概率;
P(x|i)表述x关于类别i的条件分布;
P(i)为不知道对象自身任何信息的情况下该对象属于类别i的概率(即类别i的先验概率);
P(x)为类别的混合分布
很明显,如果对P(i|x)的估计能得到一个合适的分数,可以将之用于分类规则。
二、贝叶斯决策论
在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
假设有N种可能的类别标记,即Y={c1,c2,...,cN},λij是将一个真实标记为cj的样本误分类为ci所产生的损失。基于后验概率P(ci|x)可获得样本x分类为ci所产生的期望损失,即在样本x上的“条件风险”(在决策论中将期望损失称为风险):
注:
决策论将“期望损失”称为“风险”;
R(ci|x)=∑j=1NλijP(cj|x)
我们的任务是寻找一个判定准则h:χ→Y以最小化总体风险
R(h)=Ex[R(h(x))|x]
显然,对每个样本x,若h能最小化条件风险R(h(x)|x),则总体风险R(h)也将被最小化。这就产生了贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个使条件风险R(c|x)最小的类别标记:
h∗(x)=argminc∈YR(c|x)
此时,h∗称为贝叶斯最优分类器,与之对应的总体风险R(h∗)称之为贝叶斯风险,1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度的理论上限。
若木表是最小化分类错误率,则λij可写为:
λij={01ifi=jotherwise
此时条件风险:
R(c|x)=1−P(c|x)
于是,最小化分类错误率的贝叶斯最优分类器为:
h∗(x)=argmaxc∈YP(c|x)
对每个样本x,选择能使后验概率P(c|x)最大的类别标记。
想要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率P(c|x),这通常难以直接获得。从这个角度出发,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率P(c|x)。事实上,很多机器学习方法无须准确估计后验概率就能准确进行分类。
大体来说,主要有两种策略:1.给定x,通过直接建模P(c|x)来预测c,这属于“判别式模型”;也可先对联合概率分布P(c,x)建模,然后再获得P(c|x),这属于“生成式模型”。对于后者,必然考虑:
P(c|x)=P(c)P(x|c)P(x)
类先验概率P(c)对所有类别标记均相同,可通过各类样本出现的频率进行估计。
类条件概率P(x|c)亦称之为”似然”,由于涉及x所有属性的联合分布,直接根据样本出现的频率进行估计将会遇到严重的困难。假设样本的d个属性都是二值的,则样本空间将有2d中可能性,很多取值在训练集中可能根本就没有出现,直接使用频率估计P(x|c)显然不可行,因为“未被观测到”与“出现概率为零”是不同的。
注:
联合概率P(AB)或者P(A⋂B):多元随机变量分别满足各自条件的概率
三、极大似然估计
概念理解:一般来说,时间A发生的概率与某一未知的参数θ有关,θ取值不同,则事件A发生的概率P(A|θ)也不相同,当我们在一次试验中事件A发生了,则认为此时的θ值应是其一切可能取值中使得P(A|θ)达到最大的那一个值,极大似然估计就是要找出这样的值作为参数θ的估计值,从而使得所选取的样本在数据集中出现的可能性最大。
最大似然估计是常用的参数估计方法之一,即已知某个随机样本满足某种概率分布,但是具体的参数未知,参数估计就是通过若干次实验通过其结果推测参数的大概值。
估计类条件概率的一种常用策略是:先假定类条件概率具有某种确定的概率分布形式,再基于训练数据集对概率分布的参数进行估计。具体地,即关于类别c的类条件概率为P(x|c),假设P(x|c)具有确实的形式并且被参数向量θc唯一确定,则我们的任务就是利用训练集D估计参数θc。将P(x|c)记为P(x|θc)。
事实上,概率模型的训练过程就是参数估计的过程。统计学派认为参数虽未知,但是客观存在的固定值,因此可通过优化似然函数来确定参数值;贝叶斯学派认为,参数也可能具有某种分布,可假设参数服从一个先验分布,然后基于观测到的数据来计算参数的后验概率。极大似然估计属于前者。
令Dc表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数θc对于数据集Dc的似然:
注:
独立同分布:在随机过程中,任何时刻的取值均为随机变量,如果这些随机变量服从同一分布,且相互独立,则这些变量是独立同分布的。
P(Dc|θc)=∏x∈DcP(x|Dc)
对θc进行极大似然估计就是寻找能使最大化似然P(Dc|θc)的参数θ^c。直观上看,极大似然估计是试图在θc所有可能的取值中找到一个能使数据出现的“可能性”最大的值。
对以上的连乘操作易造成下溢,通常使用对数似然:
LL(θc)=logP(Dc|θc)=∑x∈DclogP(x|θc)
此时参数的最大化似然估计θ^c为:
θ^c=argmaxθcLL(θc)
四、朴素贝叶斯分类器
基于贝叶斯公式估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的数据集或者训练样本中直接估计而得。为避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知的类别,假设属性相互独立,即每个属性独立的对分类结果产生影响。
由属性条件独立性假设可得:
P(c|x)=P(c)P(x|c)P(x)=P(c)P(x)∏i=1dP(xi|c)
对于所有的类别来说,P(x)相同,因此:
hnb(x)=argmaxc∈YP(c)∏i=1dP(xi|c)
这就是朴素贝叶斯分类器的思想。
基于训练数据集估计类先验概率P(c),并为每一属性估计条件概率P(xi|c)。
P(c)=|Dc||D|
如果属性是离散的:
P(xi|c)=|Dc,xi||Dc|
如果属性是连续的,可以考虑密度函数,假设
p(xi|c)∼N(μc,i,σ2c,i)
其中μc,i和σ2c,i分别是第c类样本在第i个属性上取值的均值和方差,则有:
p(xi|c)=12π−−√σc,iexp⎛⎝−(xi−μc,i)22σ2c,i⎞⎠
声明:本文内容引自周志华老师《机器学习》
相关文章推荐
- 朴素贝叶斯分类器(Naive Bayes)
- 朴素贝叶斯分类器(Navie Bayesian Classifier)中的几个要点(一)
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器进行10轮交叉测试
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器及Python实现
- 朴素贝叶斯分类器与贝叶斯估计
- 朴素贝叶斯分类器--一种简单有效的常用分类算法
- 朴素贝叶斯分类器【java实现 + 从mysql数据库读数据】
- 分类器模型1:朴素贝叶斯分类器 Naive Bayes(转载)
- R语言-朴素贝叶斯分类器(1)
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器原理与java实现
- 朴素的贝叶斯分类器(Naive Bayesian Classifier)
- 朴素贝叶斯分类器(没什么价值,作为路标留给自己看)
- 贝叶斯分类器-2:半朴素贝叶斯分类器
- 朴素贝叶斯分类器
- 朴素贝叶斯分类器