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

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


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

你可能感兴趣的:(机器学习,机器学习)