<机器学习实战>--朴素贝叶斯(一)

  一 简介
朴素贝叶斯是基于概率论的一种分类方法,或者说是基于贝叶斯定理与特征条件独立假设的分类方法.该方法是用于分类问题,现实生活中用于病人的诊断,不当言论的分类等.由于其实现方法简单,计算效率高,所以应用还是比较广泛的.
  二 概率模型
朴素贝叶斯就是一个概率模型, 再分类的过程中, 我们会计算这个样本属于每一个类别的概率, 然后求出其中的最大值, 最大值所对应的概率就是我们所确定的类.
  2.1 概率公式
首先我们来看条件概率, 条件概率P(A|B), P(A|B)表示是在事件B发生的条件下, 条件A发生的概率.

P(A|B)=P(AB)P(B)

P(B|A)=P(AB)P(A)

也就可以得出 P(A|B)P(B)=P(B|A)P(A) ,即可以推出
P(B|A)=P(A|B)P(B)P(A)

如果把A和B换成X和Y,是不是可以得到
P(Y|X)=P(Y)P(X|Y)P(X)
, X和Y将分别代表样本的参数和样本的类别, 来看一下下面这个大表格.

考过 逛街 打游戏 学习
1 0 0 1
0 1 0 0
1 0 1 1
1 1 0 1
0 1 1 0
0 0 1 0

1代表考过, 逛街, 打游戏,学习. 0代表没考过,没逛街,没学习

这个表是说明是否考过和逛街,打游戏,学习之间的关系.

  2.2 例子详解
  这个表格很简单, 但是他和朴素贝叶斯有什么关系呢?那我们先来了解一下朴素是什么, 朴素可以理解为”无依无靠”, 没有任何的”关系网”. 举个例子, 一个样本X由 x1 , x2 , x3 , x4 , Y 组成. 我们暂且叫这些x为属性, Y为类别,当一个样本确定时, 我们假设它的属性之间是没有甚麽关系的, 这个假设很重要的. 因为它为我们节省了很多的计算量. 它的数学表达式为:

P(X=x|Y=ck)=P(x1,x2,x3,x4|Y=ck)=P(x1|Y=ck)P(x2|Y=ck)P(x3|Y=ck)P(x4|Y=ck)

这就说明了以上各个属性之间是条件独立的.有了这样一个条件我们就可以对一个新的样本作出决策了, 让我们看一下上面那个例子.根据表格中的数据我们先计算一些先验概率:

P()=36 P()=36
P(|)=13 P(|)=23
P(|)=13 P(|)=23
P(|)=33 P(|)=03
P(|)=23 P(|)=13
P(|)=23 P(|)=13
P(|)=03 P(|)=33

计算考过及没考过分别和三个属性的先验概率.
  当有一个新来的样本,(逛街,打游戏,学习),我们怎样判断他是否能考过呢?
  首先看(逛街,打游戏,学习)这是甚麽, 这是不是上面的X, 也就是属性啊. 我们判断他是否能考过, 也就是计算他的Y是甚麽,对吧. 一句话总结就是, 在知道这个人的个人喜好(X)前提下去判断他能否考过(Y), 这不就是让我们计算条件概率P(Y|X)啊.

P(Y|X)=P(Y|x1,x2,x3)

P(Y|X)=P(XY)P(X)=P(Y)P(X|Y)P(X)=P(Y)P(x1,x2,x3|Y)P(X)=P(Y)P(x1|Y)P(x2|Y)P(x3|Y)P(X)

我们就是要把上式中的Y替换为考过, X替换为(逛街,打游戏,学习)计算一下概率. 再把上式中的Y替换为没考过, X替换为(逛街,打游戏,学习)计算一下概率. 比较二者的大小, 就可以确定他是否能考过. 这是贝叶斯的关键.
这样我们把原来求P(Y|X)这个后验概率 转换为求X和Y的联合概率, 再把联合概率转换为先验概率P(Y|X)*P(Y), 除了P(Y|X)之外, 其它的数据我们是不是都已经求出来了啊? 直接像里面代数是不是就可以了. 当然是的啊. (注意我在公式中X和 x1,x2,x3 的转换).
请注意上面公式分母的P(X), P(X)=P(Y1|X)P(X)+P(Y2|X)P(X) , P(X)对于计算属于哪一类都是这一个表达式, 所以分母都是一样的, 我们只需要计算分子即可.
P(Y|X)=P(x|Y)P(x|Y)P(x|Y)P(Y)P(X)=13133312P(X)=118P(X)

P(Y|X)=P(x|Y)P(x|Y)P(x|Y)P(Y)P(X)=23230312P(X)=054P(X)=0

P(Y|X)>P(Y|X) , 所以这个学生会考过的.
  但是这也有一个问题, 就是在没考过这也情况下, P(x|Y)=0 , 由于它的存在, 不管其它属性是什么, 直接让第二个概率的分子为0了, 因为分子上是连乘的, 所以这也是一种弊端, 为此我们可以考虑做一个操作防止这样的情况出现, 那就是拉普拉斯平滑, 其实就是在分子上加上a, 在分母上加上 类别数*a. 上面那个例子就变成分子上加a, 分母上加2a即可.

  总结一下: 我罗嗦了那么多, 其实计算朴素贝叶斯就分三步.
  第一: 计算先验概率, 先验概率包括
P(Y=ck)=ck

P(x|Yck)=Yck,xY

  第二: 计算预测样本的概率
P(Yck)P(x1|Yck)...P(xn|Yck),k=1,2,3,..K
的值

  第三: 在第二步中你已经计算出来了K个概率值, 比较这K个概率值的大小, 最大的概率值所属于的类别就为该样本的类别.

以上, 欢迎拍砖, 谢谢.

猜你喜欢

转载自blog.csdn.net/qq_18293213/article/details/78236471
今日推荐