统计学习方法(4)——贝叶斯分类算法

来源:互联网 发布:天津市软件学院 编辑:程序博客网 时间:2024/05/29 13:20

朴素贝叶斯算法实现简单,学习和预测的效率均很高,是一种非常常用的方法。


1 贝叶斯算法

贝叶斯算法指通过学习数据的先验概率P(Y)和类条件概率P(X=x|Y=ck)分布,通过贝叶斯定理计算出后验概率P(Y=ck|X=x)。因为在实际中,我们往往比较容易得到前两者,通过(1)式我们便可以得到我们实际希望得到的样本在满足x的条件下,属于ck这个类别的后验概率的大小.

P(Y|X)=P(X,Y)P(X)=P(X|Y)P(Y)YP(Y)P(X|Y)
(1)
贝叶斯定理的推导非常简单,可以直接利用类条件概率推得。
P(Y|X)=P(X,Y)P(X)
(2)
P(X|Y)=P(X,Y)P(Y)
(3)
从以上(2,3)两式,我们便可以得到(1)式

2 朴素贝叶斯算法

假设我们的输入空间χRn为n维向量的集和,那么我们的条件概率可以写作:

P(X=x|Y=ck)=P(X(1)=x(1),X(2)=x(2),...,X(n)=x(n)),k=1,2...,K
(4)
如果按照第一节中提到的贝叶斯公式直接进行计算,需要估计的参数将按照指数级增长。假设xj的取值有Sj,j=1,2,…,n,n为特征维度,y的取值有K个,那么需要估计的参数个数大约为Kj=1nSj个。如果X,Y的取值均是boolean variable,那么需要估计的参数大约为2n+1个。面对如此多的参数,学习将变得非常的低效,因此我们引入了朴素贝叶斯的概念。这里的“朴素”就是作了条件概率中各条件具有独立的假设,这时,(4)的条件概率可以写作:
P(X=x|Y=ck)=P(X(1)=x(1),X(2)=x(2),...,X(n)=x(n))=j=1nP(X(j)=x(j)|Y=ck)
(5)
此时,需要学习的参数只有j=1nKSj个,特别是当特征的维度很高时,两者的差距将会非常的明显。可以得到朴素贝叶斯分类的基本公式:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)=P(Y=ck)jP(X(j)=x(j)|Y=ck)kP(Y=ck)jP(X(j)=x(j)|Y=ck),k=1,2,...,K
(6)
取使(6)式最大的ck 作为需要预测的样本所属的类别

总结

在朴素贝叶斯算法中,我们假设所有的条件互相独立,这是一个较强的假设,但这是由于这一假设,使模型中需要学习的参数大大减少,因而朴素贝叶斯算法的效率较高,但是分类的性能不一定很高


参考资料

  1. 统计学习方法
  2. Generative and discriminative classifiers: naive Bayes and logistic regression, 2005
1 0
原创粉丝点击