1、原理
朴素贝叶斯和贝叶斯估计不是一回事。
朴素贝叶斯基于条件独立性假设:
P(X=x|Y=ck)=∏nj=1P(Xj=xj|Y=ck)
朴素贝叶斯是学习到生成数据的机制,属于生成模型。
2、流程
输入:训练数据
T={(x1,y1),(x2,y2),....,(xn,yn)},其中xi=(x1i,x2i,...xni),xji是第i个样本的第j个特征
,
xji∈{aj1,aj2,...,ajSl},其中ajl是第j个特征可能取的第l个值,j=1,2,...,n;l=1,2,...,Sj,yi∈{c1,c2,...,ck}
输出:实例x的分类
(1)计算先验概率和条件概率
先验概率:
P(Y=ck)=∑Ni=1I(yi=ck)N,k=1,2,...,K
条件概率:
P(Xj=ajl|Y=ck)=∑Ni=1I(xji=ajl,yi=ck)∑Ni=1I(yi=ck),j=1,2,...n;l=1,2,...Sj;k=1,2,...K
(2)对于给定的实例
xi=(x1i,x2i,...xni)
,计算
(3)确定实例x的类
3、拉普拉斯校准
当P(a|y)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。
4、遇到特征之间不独立问题
参考改进的贝叶斯网络,使用DAG来进行概率图的描述
5、优缺点
优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点:对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。