朴素贝叶斯方法

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。
朴素贝叶斯与判别分析很像,只是判别分析需要假设数据服从的概率分布,而朴素贝叶斯用于离散数据,所以其条件概率是直接统计数据得来的
朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y).具体地,学习以下先验概率分布及条件概率分布。
先验分布 \(P(Y=c_k),k=1,2,\cdots,K\)
条件概率分布

\[P(X=x|Y=c_k)=P(X^{(1)} =x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k),k=1,2,\cdots,K \]

于是学习得到联合概率分布P(X,Y)=P(X|Y)P(Y) 假设\(x^{(j)}\)可取值有\(S_j\)个,\(j=1,2,\cdots,n\),Y可取值有K个,
那么参数个数为\(K\prod_{j=1}^n S_j\),因此,朴素贝叶斯法对条件概率分布作了条件独立性的假设

\[P(X=x|Y=c_k)=P(X^{(1)}=X^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k) = \prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \]

条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。
朴素贝叶斯法分类时,对给定的输入x,通过学习到的模型计算后验概率分布\(P(Y=c_k|X=x)\),将后验概率最大的类作为x的类输出。于是,朴素贝叶斯分类器可表示为:

\[y=f(x) = argmaxP(Y=c_k|X=x)=argmax\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}=argmax\frac{P(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)} \\ =argmaxP(Y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k) \]

后验概率最大等价于0-1损失函数时的期望风险最小化。
用极大似然估计可能会出现所要估计的概率值为0的情况,这时会影响到后验概率的计算结果,使分类产生偏差,解决这一问题的方法是采用贝叶斯估计,具体地,条件概率的贝叶斯估计是

\[P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^N I(x_i^{(j)}=a_{jl},y_i=c_k)+ \lambda}{\sum_{i=1}^N I(y_i=c_k)+S_j \lambda} \]

式中\(\lambda \geq 0\)等价于在随机变量各个取值的频数上赋予一个正数 \(lambda >0\)。常取\(\lambda = 1,\)这时称为拉普拉斯平滑
同样,先验概率的贝叶斯估计是

\[P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)+\lambda}{N+K \lambda} \]

posted @ 2017-12-19 20:03  blog_hfg  阅读(162)  评论(0)    收藏  举报