简介:
朴素贝叶斯法是基于贝叶斯定理和特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y,朴素贝叶斯法实现简单,学习和预测效率都很高,是一种常用的方法。
朴素贝叶斯法的学习与分类
基本方法:
X是定义在输入空间上的随机变量,Y是定义在输出空间上的随机变量。P(X,Y)是X和Y的联合概率分布。训练数据集T由P(X,Y)独立同分布产生。
条件概率分布P(X = x | Y =
c
k) = P(
X
(1) =
x
(1), ···,
X
(n)=
x
(
n) | Y =
c
k),k = 1,2,···,K
但是此条件概率分布有指数级数量的参数,其估计实际是不可行的。假设
x
j可能取
值有
S
j个,j = 1,2,···,n,Y可能取值有K个,那么参数个数为就是说如果我要确定任意一个P( Xj = xj | Y = ck)需要确定的可能参数个数有个,而且条件还异常苛刻(某个类的一个实例同时满足n个特征值);
所以我们换一种容易实现的条件概率分布,朴素贝叶斯法对条件概率分布作了条件独立性的假设,
由于这是一个较强的假设,朴素贝叶斯法也由此得名。
公式如下:
朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型(根据指定类中各个特征的概率,能确定指定类中某个实例(用特征值表示实例)的概率)。条件独立假设等于是说明了分类的特征在类确定的条件下都是条件独立的。这一假设是朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。
朴素贝叶斯法分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y =
c
k | X = x),将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理进行:
之所以要先求P(X = x | Y =
c
k),是因为贝叶斯方法是假设用于分类的特征在类确定的条件下都是条件独立的,然后用P(
X
j =
x
j | Y =
c
k)的组合表示P(X = x | Y =
c
k),又推到出使用P(X = x | Y =
c
k)表示P(Y =
c
k | X = x)的公式,最终用P(
X
j =
x
j | Y =
c
k)表示P(Y =
c
k | X = x),而所有的P(
X
j =
x
j | Y =
c
k),可是在训练数据中用极大似然方法来找到值。
后验概率最大化含义:
朴素贝叶斯法将实例分到后验概率最大的类中,等价于期望风险最小化。
朴素贝叶斯法的参数估计
极大似然估计:
在朴素贝叶斯法中,学习意味着估计P(Y =
c
k)和P(
X
j =
x
j | Y =
c
k),因为可以通过这两者推算出最终等价于期望风险最小化的后验概率P(Y =
c
k | X = x)。而这两者可以用极大似然估计法估计相应的概率。先验概率P(Y =
c
k)的极大似然估计是:
设第j个特征可能取值的集合为{
a
j1
,
a
j2
,···,
a
jsj},条件概率P(
X
j =
ajl | Y =
c
k)的极大似然估计是:
学习与分类算法:
由上面的论述可知求输入实例x的类即求最大后验概率,而后验概率的最大化公式可以通过P(Y =
c
k)和P(
X
j =
x
j | Y =
c
k)推导出来
贝叶斯估计:
使用极大似然估计可能出现P(Y =
c
k)或P(
X
j =
x
j | Y =
c
k)为0的情况,这个时候会影响到后验概率的计算结果,使分类偏差。
于是提出了贝叶斯估计,也就是在分子分母上加上对应的正值,让两者都都不可能为零,并且总概率依然为1,公式如下:
式中
λ >= 0,当λ = 0时,就是极大似然估计。常取λ = 1,这时称为拉普拉斯平滑。显然,对任何 l
= 1,2,···,
S
j
,k = 1,2,···,K,有
同样的原理,先验概率的贝叶斯估计是:
引申:
朴素贝叶斯的是基于基本假设:输入变量都是条件独立的。
如果去掉这个假设,那么输入变量的条件之间一般存在概率依存关系,这样模型就变成了贝叶斯网络。以后一定要抽时间研究下贝叶斯网络。