IT虾米网

朴素贝叶斯算法详解

luoye 2018年07月04日 程序员 115 0

朴素贝叶斯法的学习与分类

基本方法

设输入空间为n维向量的集合,输出空间为类标记集合={c1……ck}。输入特征向量x和输出类标记y分属于这两个集合。X是输入空间上的随机变量,Y是输出空间上的随机变量。P(X,Y)是X和Y的联合概率分布,训练数据集

由P(X,Y)独立同分布产生。

朴素贝叶斯法通过T学习联合概率分布P(X,Y)。具体来讲,学习以下先验概率:

以及条件概率分布:

于是根据联合概率分布密度函数:

学习到联合概率分布P(X,Y)。

朴素贝叶斯法对它做了条件独立性的假设:

也就是各个维度的特征在类确定的情况下都是独立分布的。这一假设简化了计算,也牺牲了一定的分类准确率。

基于此假设,以及贝叶斯定理,后验概率为:

分母其实是P(X=x),等同于枚举ck联合分布的和:∑P(X=x,Y=ck),此联合分布按公式拆开,等于上式分母。

将独立性假设代入上式,得到:

朴素贝叶斯分类器可以表示为:

也就是给定参数,找一个概率最大的ck出来。注意到上式分母其实就是P(X=x),x给定了就固定了,跟ck一点关系都没有,所以分母可以去掉,得到:

后验概率最大化的含义

选择0-1损失函数:

f(X)就是分类器的决策函数,损失函数的参数其实是一个联合分布。

此时期望风险函数为:

上面说过,这是一个联合分布P(X,Y),是一个and(连乘)的形式,由此取条件期望为风险函数:

为了最小化上式,只需对每个X=x执行最小化,那么加起来肯定是极小化的,由此有:

朴素贝叶斯法的参数估计

极大似然估计

前面说过,朴素贝叶斯法要学习的东西就是P(Y=ck)和P(X=x|Y=ck),这两个概率的估计用极大似然估计法(简单讲,就是用样本猜测模型参数,或者说使得似然函数最大的参数)进行:

也就是用样本中ck的出现次数除以样本容量。

分子是样本中变量组合的出现次数,分母是上面说过的样本中ck的出现次数。

学习与分类算法

于是就有朴素贝叶斯算法,先从训练数据中计算先验概率和条件概率,然后对于给定的实例计算最大的条件概率,输出该条件对应的类别。形式化的描述如下:

贝叶斯估计

最大似然估计有个隐患,假设训练数据中没有出现某种参数和类别的组合怎么办?此时估计的概率值为0,但是这不代表真实数据中就没有这样的组合。解决办法是采用贝叶斯估计

1、条件概率的贝叶斯估计:

其中,Sj表示xj可能取值的种数分子和分母分别比最大似然估计多了一点东西,其意义是在随机变量每个取值的频数上加一个常量。当此常量取0时,就是最大似然估计,当此常量取1时,称为拉普拉斯平滑。

2、先验概率的贝叶斯估计:


发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

KNN算法详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。