[学习笔记]分类算法之朴树贝叶斯
,输入特征向量为x, 表示第i个样本点特征向量的j分量,在后面的计算中, 会有不同的取值。
朴树贝叶斯首先基于训练集合学习联合概率分布p(X,Y),然后基于该模型,针对输入特征向量x,计算出后验概率最大的类别作为输出
,所以学习联合分布的的任务就是通过训练数据学习
其中 ,同时 又存在 个不同的取值,所以模型参数个数为 当 较大时,模型过多。
所以朴树贝叶斯法对条件概率做了很强的假设:特征条件独立,即
参数个数为 ,引入这个假设降低了算法的复杂度,但是牺牲了准确率。
训练过程也比较简单,基于训练集合,定义似然函数
同时满足约束条件:
其中 表示特征向量第j个分量的第l个取值,注意为了计算方便,这里假设每个分量有相同的取值个数,实际上是不一样的。
构建拉格朗日函数
接下来求解很简单,极大似然估计,分别对参数求导即可,注意里面有拉格朗日乘子.
求解 ,有
其中
则有 ,将其带入约束条件,
则有
有
最后有
同样方法可以求得:
贝叶斯估计:存在一个问题,如果p(x=f|y=c)在训练中没有出现过,则有p(x=f|y=c)=0,导致整个结果等0,显然不是我们想要的。
引入 ,
虽然引入 ,有 ,满足约束
如果 则是拉普拉斯估计。
同样
分母中 的系数,依赖于类别的个数,即不同参数的个数
思考:1.朴树贝叶斯有强假设,特征条件独立这个假设对准确率牺牲成都多大,相对于其他分类方法,比如logistic 回归,准确率怎么样
2.特征值为离散值,实际使用时,将连续value离散化,使用朴树贝叶斯,与直接使用其他分类法,准确率是否有区别