您的位置:首页 > 其它

机器学习系列04——贝叶斯决策(Bayes)

2016-02-20 00:53 666 查看

贝叶斯决策(Bayes)

【前言】前面几天一直比较忙,写了机器学习的前几篇文章,中间还研究了下微信订阅号开发,简单的做了个微信订阅号,每天发布一天好的文章给大家,希望多少对大家有点帮助,今天继续写贝叶斯决策,这个算法涉及到概率论中的内容比较多,大家耐心看哈!
【摘要】本文主要讲解“贝叶斯决策”算法,本算法是机器学习中应用非常广泛的算法之一,尤其在文本分类中的应用,例如在垃圾文件分类中的应用,本文从一定的数学基础(条件概率、全概率公式等)开始逐步引入贝叶斯定理、贝叶斯公式,以及对贝叶斯公式的理解,最后写到了文本分类问题,以及贝叶斯决策在文本分类中的应用方法。

1、贝叶斯定理

1.1、条件概率

所谓"条件概率"(Conditional probability),就是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示。



根据文氏图,可以很清楚地看到在事件B发生的情况下,事件A发生的概率就是P(A∩B)除以P(B)。

由条件概率推导贝叶斯定理:

根据条件概率的定义。在事件B发生的条件下事件A发生的概率是:



同样,在事件A发生的条件下事件B发生的概率为:



整理与合并两个方程式,得到:



这个引理有时称为概率惩罚规则。上式两边同除以P(A),若P(A)非零,我们可以得到贝叶斯定理:



1.2、全概率公式

假设样本空间S,是两个事件A与A'的和,如下图:



上图中,事件A和事件A'共同构成了样本空间S。

这种情况下,事件B能划分成两个部分。如下图:



即:

P(B) = P(B A) + P(B A')

由上面的推导可知:P(B A) = P(B|A)P(A)

所以:P(B) = P(B|A)P(A) +P(B| A')P(A')

这就是全概率公式。它的含义是,如果A和A'构成样本空间的一个划分,那么事件B的概率,就等于A和A'的概率分别乘以B对这两个事件的条件概率之和。

全概率公式的另一种写法:

P(A|B) = 


1.3、贝叶斯公式



或者写成如下形式:



        我们把P(A)称为"先验概率"(Prior probability),即在B事件发生之前,我们对A事件概率的一个判断。P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数"(Likelihood),这是一个调整因子,使得预估概率更接近真实概率。(这一段话很重要,大家好好理解!

1.4、贝叶斯推断的含义(理解)

       先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"。

       在这里,如果"可能性函数"P(B|A)/P(B)>1,意味着"先验概率"被增强,事件A的发生的可能性变大;如果"可能性函数"=1,意味着B事件无助于判断事件A的可能性;如果"可能性函数"<1,意味着"先验概率"被削弱,事件A的可能性变小。

2、贝叶斯——文本分类

2.1、文本分类问题

在文本分类中,假设我们有一个文档d∈X,X是文档向量空间(document space),和一个固定的类集合C={c1,c2,…,cj},类别又称为标签。显然,文档向量空间是一个高维度空间。我们把一堆打了标签的文档集合<d,c>作为训练样本,<d,c>∈X×C。例如:

<d,c>={Beijingjoins the World Trade Organization, China}

对于这个只有一句话的文档,我们把它归类到China,即打上china标签。

我们期望用某种训练算法,训练出一个函数γ,能够将文档映射到某一个类别:γ:X→C

这种类型的学习方法叫做有监督学习,因为事先有一个监督者(我们事先给出了一堆打好标签的文档)像个老师一样监督着整个学习过程。

朴素贝叶斯分类器是一种有监督学习,常见有两种模型,多项式模型(multinomialmodel)和伯努利模型(Bernoulli model)

2.2、多项式模型

2.2.1、基本原理

在多项式模型中,设某文档d=(t1,t2,…,tk),tk是该文档中出现过的单词,允许重复,则

先验概率P(c)= 类c下单词总数/整个训练样本的单词总数;

类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|V|)

V是训练样本的单词表(即抽取单词,单词出现多次,只算一个),|V|则表示训练样本包含多少种单词。在这里,m=|V|, p=1/|V|。

P(tk|c)=可以看作是单词tk在证明d属于类c上提供了多大的证据,而P(c)则可以认为是类别c在整体上占多大比例(有多大可能性)。

2.2.2、举例

给定一组分类好了的文本训练数据,如下:

docId
doc
类别In c=China?
1
Chinese Beijing Chinese
yes
2
Chinese Chinese Shanghai
yes
3
Chinese Macao
yes
4
Tokyo Japan Chinese
no
给定一个新样本 > Chinese Chinese Chinese Tokyo Japan对其进行分类。该文本用属性向量表示为d=(Chinese, Chinese,
Chinese, Tokyo, Japan),类别集合为Y={yes, no}。



2.3、伯努利模型

2.3.1、基本原理(重要,要记住)

P(c)=类c下文件总数/整个训练样本的文件总数

P(tk |c)= (类c下包含单词tk的文件数+1)/(类c下单词总数+2)

在这里,m=2,p=12m=2,p=12。

2.3.2、举例

依旧使用多项式模型中的例子



2.4、两个模型的区别(了解)

       二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。

       计算后验概率时,对于一个文档d,多项式模型中,只有在d中出现过的单词,才会参与后验概率计算,伯努利模型中,没有在d中出现,但是在全局单词表中出现的单词,也会参与计算,不过是作为“反方”参与的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息