统计学习方法笔记-朴素贝叶斯

来源:互联网 发布:java如何实现线程 编辑:程序博客网 时间:2024/06/01 09:19

先验概率与后验概率

  在说朴素贝叶斯之前,这里先提出两个概念先验概率和后验概率。先验概率基于之前历史数据或者主观经验得出的某一随机事件发生的概率P(A)。而后验概率呢?这个时候如果发生了某个事件B,再考虑A发生的概率P(A|B)就是后验概率。(个人理解如有错误,欢迎大神指正)

朴素贝叶斯的原理

  朴素贝叶斯是对于每一个输入x,都求出其对应的后验概率最大的输出y。关于分类问题,朴素贝叶斯方法会将实例预测成后验概率最大的类。
  这里假设损失函数如下:

L(Y,f(X))={1,0,Yf(X)Y=f(X)

  此时期望风险函数可以表达如下:

Rexp(f)=E[L(Y,f(X))]

Rexp(f)=EXKk=1[L(ck,f(X))]P(ck|X)

  为了使期望达到最小,就要实现如下:
f(x)=arg maxckP(ck|X=x)

  这就是朴素贝叶斯采用的原理。

朴素贝叶斯方法

  朴素贝叶斯法实际学习过程中会学习到生成数据的机制,所以这是一种生成模型。这里提到的朴素贝叶斯法只能处理输入输出都为有限离散的数据,而且它还有一个假设,就是特征向量的任意两维间条件独立,如下所示:

P(X=x|Y=ck)=P(X(1)=x(1),,X(n)=x(n)|Y=ck)=j=1nP(X(j)=x(j)|Y=ck)

  该假设下后验概率计算如下:
P(ck|X=x)=P(x|ck)P(ck)kP(x|ck)P(ck)=P(ck)jP(x(j)|ck)kP(ck)jP(x(j)|ck),k=1,2,3,,K

y=f(x)=argmaxckP(ck|x)

  由于对于每一个ck的概率的分母都是一样的,所以上面的式子可以变为:
y=argmaxckP(ck)jP(x(j)|ck)

朴素贝叶斯法中参数的估计

极大似然估计

  极大似然估计很直观,计算如下:

P(ck)=Ni=1I(yi=ck)N

P(X(j)=ajl|Y=ck)=Ni=1I(x(j)i=ajl,yi=ck)Ni=1I(yi=ck)

贝叶斯估计

  由于极大似然估计可能会出现求出来结果为0的情况,为了解决这一问题可以采用贝叶斯估计,具体如下:
  假设ajl可能有Sj个可能值,那么:

Pλ(X(j)=ajl|Y=ck)=Ni=1I(x(j)i=ajl,yi=ck)+λNi=1I(yi=ck)+Sjλ

  假设ck可能有K个可能值,那么:
Pλ(ck)=Ni=1I(yi=ck)+λN+Kλ

  上面式子中的λ0λ=0时就是极大似然估计,λ=1时就是拉普拉斯平滑。

阅读全文
0 0
原创粉丝点击