朴素贝叶斯法的学习与分类
基本方法
设输入空间为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、先验概率的贝叶斯估计:
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/7210.html