数据挖掘经典算法总结-朴素贝叶斯分类器

转载 2016年06月01日 17:09:28

贝叶斯定理(Bayes theorem),是概率论中的一个结果,它跟随机变量条件概率以及边缘概率分布有关。在有些关于概率的解说中,贝叶斯定理(贝叶斯更新)能够告知我们如何利用新证据修改已有的看法。

通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯定理就是这种关系的陈述。

贝叶斯定理的陈述

贝叶斯定理是关于随机事件A和B的条件概率边缘概率的一则定理。

先验概率或边缘概率。之所以称为”先验”是因为它不考虑任何B方面的因素。
  • Pr(A|B)是已知B发生后A条件概率,也由于得自B的取值而被称作A后验概率
  • Pr(B|A)是已知A发生后B条件概率,也由于得自A的取值而被称作B后验概率
  • Pr(B)是B先验概率边缘概率,也作标准化常量(normalizedconstant).

    按这些术语,Bayes定理可表述为:

    后验概率 = (相似度 * 先验概率)/标准化常量

    也就是说,后验概率与先验概率和相似度的乘积成正比。

    另外,比例Pr(B|A)/Pr(B)也有时被称作标准相似度(standardisedlikelihood),Bayes定理可表述为:

    后验概率 = 标准相似度 * 先验概率

    从条件概率推导贝叶斯定理

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

    wikipedia)”src=”http://upload.wikimedia.org/math/f/9/9/f9970e3bd225504bc5c54733bd8e78d2.png”alt=”\Pr(B|A) = \frac{\Pr(A \cap B)}{\Pr(A)}. \!”/>

    整理与合并这两个方程式, 我们可以找到

    wikipedia)”src=”http://upload.wikimedia.org/math/b/2/6/b26222db003c783d5a92815732533810.png”alt=”\Pr(A|B) = \frac{\Pr(B|A)\,\Pr(A)}{\Pr(B)}. \!”/>

    下面我再举个简单的例子来说明下。

    示例1

    考虑一个医疗诊断问题,有两种可能的假设:(1)病人有癌症。(2)病人无癌症。样本数据来自某化验测试,它也有两种可能的结果:阳性和阴性。假设我们已经有先验知识:在所有人口中只有0.008的人患病。此外,化验测试对有病的患者有98%的可能返回阳性结果,对无病患者有97%的可能返回阴性结果。

    上面的数据可以用以下概率式子表示:
    P(cancer)=0.008,P(无cancer)=0.992
    P(阳性|cancer)=0.98,P(阴性|cancer)=0.02
    P(阳性|无cancer)=0.03,P(阴性|无cancer)=0.97
    假设现在有一个新病人,化验测试返回阳性,是否将病人断定为有癌症呢?我们可以来计算极大后验假设:
    P(阳性|cancer)p(cancer)=0.98*0.008 = 0.0078
    P(阳性|无cancer)*p(无cancer)=0.03*0.992 = 0.0298
    因此,应该判断为无癌症。
    贝叶斯学习理论
    贝叶斯是一种基于概率的学习算法,能够用来计算显式的假设概率,它基于假设的先验概率,给定假设下观察到不同数据的概率以及观察到的数据本身(后面我们可以看到,其实就这么三点东西,呵呵)。
    我们用P(h)表示没有训练样本数据前假设h拥有的初始概率,也就称为h的先验概率,它反映了我们所拥有的关于h是一个正确假设的机会的背景知识。当然如果没有这个先验知识的话,在实际处理中,我们可以简单地将每一种假设都赋给一个相同的概率。类似,P(D)代表将要观察的训练样本数据D的先验概率(也就是说,在没有确定某一个假设成立时D的概率)。然后是P(D/h),它表示假设h成立时观察到数据D的概率。在机器学习中,我们感兴趣的是P(h/D),也就是给定了一个训练样本数据D,判断假设h成立的概率,这也称之为后验概率,它反映了在看到训练样本数据D后假设h成立的置信度。(注:后验概率p(h/D)反映了训练数据D的影响,而先验概率p(h)是独立于D的)。
    P(h|D) =P(D|h)P(h)/p(D),从贝叶斯公式可以看出,后验概率p(h/D)取决于P(D|h)P(h)这个乘积,呵呵,这就是贝叶斯分类算法的核心思想。我们要做的就是要考虑候选假设集合H,并在其中寻找当给定训练数据D时可能性最大的假设h(h属于H)。
    简单点说,就是给定了一个训练样本数据(样本数据已经人工分类好了),我们应该如何从这个样本数据集去学习,从而当我们碰到新的数据时,可以将新数据分类到某一个类别中去。那可以看到,上面的贝叶斯理论和这个任务是吻合的。

    朴素贝叶斯分类器
    种类

      贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。目前研究较多的贝叶斯分类器主要有四种,分别是:NaiveBayes、TAN、BAN和GBN。
    解释
      贝叶斯网络是一个带有概率注释的有向无环图,图中的每一个结点均表示一个随机变量,图中两结点间若存在着一条弧,则表示这两结点相对应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的。网络中任意一个结点X均有一个相应的条件概率表(Conditional Probability Table,CPT),用以表示结点X在其父结点取各可能值时的条件概率。若结点X 无父结点,则X 的CPT 为其先验概率分布。贝叶斯网络的结构及各结点的CPT定义了网络中各变量的概率分布。
    分类
      贝叶斯分类器是用于分类的贝叶斯网络。该网络中应包含类结点C,其中C 的取值来自于类集合( c1 , c2 , … ,cm),还包含一组结点X = ( X1 , X2 , … ,Xn),表示用于分类的特征。对于贝叶斯网络分类器,若某一待分类的样本D,其分类特征值为x = ( x1 , x2 , … , x n),则样本D 属于类别ci 的概率P( C = ci | X1 = x1 , X2 = x 2 , … , Xn = x n) ,( i= 1 ,2 , … , m) 应满足下式:   P( C = ci | X = x) = Max{ P( C = c1 | X =x) , P( C = c2 | X = x ) , … , P( C = cm | X = x ) }   而由贝叶斯公式:  P( C = ci | X = x) = P( X = x | C = ci) * P( C = ci) / P( X = x)  其中,P( C = ci) 可由领域专家的经验得到,而P( X = x | C = ci) 和P( X = x)的计算则较困难。
    两阶段
      应用贝叶斯网络分类器进行分类主要分成两阶段。第一阶段是贝叶斯网络分类器的学习,即从样本数据中构造分类器,包括结构学习和CPT学习;第二阶段是贝叶斯网络分类器的推理,即计算类结点的条件概率,对分类数据进行分类。这两个阶段的时间复杂性均取决于特征值间的依赖程度,甚至可以是NP完全问题,因而在实际应用中,往往需要对贝叶斯网络分类器进行简化。根据对特征值间不同关联程度的假设,可以得出各种贝叶斯分类器,NaiveBayes、TAN、BAN、GBN 就是其中较典型、研究较深入的贝叶斯分类器。

    在具有模式的完整统计知识条件下,按照贝叶斯决策理论进行设计的一种最优分类器。分类器是对每一个输入模式赋予一个类别名称的软件或硬件装置,而贝叶斯分类器是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器。它的设计方法是一种最基本的统计分类方法。

    最小错误概率贝叶斯分类器
      把代表模式的特征向量x分到c个类别(ω1,ω2,…,ωc)中某一类的最基本方法 贝叶斯分类器是计算在x的条件下,该模式属于各类的概率,用符号P(ω1|x),P(ω2|x),…,P(ωc|x)表示。比较这些条件概率,最大数值所对应的类别ωi就是该模式所属的类。例如表示某个待查细胞的特征向量x属于正常细胞类的概率是0.2,属于癌变细胞类的概率是0.8,就把它归类为癌变细胞。上述定义的条件概率也称为后验概率,在特征向量为一维的情况下,一般有图中的变化关系。当x=x*时,P(ω1|x)=P(ω2|x)对于x>x*的区域,由于P(ω2|x)>P(ω1|x)因此x属ω2类,对于xP(ω2|x),x属ω1类,x*就相当于区域的分界点。图中的阴影面积就反映了这种方法的错误分类概率,对于以任何其他的x值作为区域分界点的分类方法都对应一个更大的阴影面积,因此贝叶斯分类器是一种最小错误概率的分类器。

    贝叶斯分类器计算过程
      一般情况下,不能直接得到后验概率而是要通过贝叶斯公式进行计算。式中的P(x│ωi)为在模式属于ωi类的条件下出现x的概率密度,称为x的类条件概率密度;P(ωi)为在所研究的识别问题中出现ωi类的概率,又称先验概率;P(x)是特征向量x的概率密度。分类器在比较后验概率时,对于确定的输入x,P(x)是常数,因此在实际应用中,通常不是直接用后验概率作为分类器的判决函数gi(x)(见线性判别函数)而采用下面两种形式:  
    对所有的c个类计算gi(x)(i=1,2,…,c)。
    与gi(x)中最大值相对应的类别就是x的所属类别。

    最小风险贝叶斯分类器

                                      公式
      由于客观事物的复杂性,分类器作出各种判决时的风险是不一样的。例如将癌细胞误判为正常细胞的风险就比将正常细胞误判为癌细胞的风险大。因此,在贝叶斯分类器中引入了风险的概念。在实际应用中根据具体情况决定各种风险的大小,通常用一组系数Cij来表示。Cij表示分类器将被识别样本分类为ωi,而该样本的真正类别为ωj时的风险。设计最小风险分类器的基本思想是用后验概率计算将x分类为ωi的条件风险贝叶斯分类器比较各Ri(x)的大小,与最小值对应的类别是分类的结果。评价这种分类器的标准是平均风险,它的平均风险最小。在实际应用时,后验概率是难以获得的,根据模式类别的多少和Cij的取值方式,可设计出各种分类器,例如模式为两类时,判别函数为判别函数如果选择C11和C22为零,C12和C21为1,它就是两类最小错误概率分类器。实际上,最小错误概率分类器是最小风险分类器的一种特殊情况。  

            贝叶斯分类器

                                判别函数

    设计贝叶斯分类器的关键是要知道样本特征x的各种概率密度函数。条件概率密度函数为多元正态分布是研究得最多的分布。这是由于它的数学表达式易于分析,在实际应用中也是一种常见的分布形式。经常使用参数方法来设计正态分布的判别函数。

    范例:

    也许你觉得这理论还不是很懂,那我再举个简单的例子,让大家对这个算法的原理有个快速的认识。(注:这个示例摘抄自《机器学习》这本书的第三章的表3-2.)

    假设给定了如下训练样本数据,我们学习的目标是根据给定的天气状况判断你对PlayTennis这个请求的回答是Yes还是No。

    Day Outlook Temperature Humidity Wind PlayTennis
    D1 Sunny Hot High Weak No
    D2 Sunny Hot High Strong No
    D3 Overcast Hot High Weak Yes
    D4 Rain Mild High Weak Yes
    D5 Rain Cool Normal Weak Yes
    D6 Rain Cool Normal Strong No
    D7 Overcast Cool Normal Strong Yes
    D8 Sunny Mild High Weak No
    D9 Sunny Cool Normal Weak Yes
    D10 Rain Mild Normal Weak Yes
    D11 Sunny Mild Normal Strong Yes
    D12 Overcast Mild High Strong Yes
    D13 Overcast Hot Normal Weak Yes
    D14 Rain Mild High Strong No

    可以看到这里样本数据集提供了14个训练样本,我们将使用此表的数据,并结合朴素贝叶斯分类器来分类下面的新实例:
    (Outlook = sunny,Temprature = cool,Humidity = high,Wind =strong)
    我们的任务就是对此新实例预测目标概念PlayTennis的目标值(yes或no).
    由上面的公式可以得到:

    可以得到:
    P(PlayTennis =yes) = 9/14 = 0.64,P(PlayTennis=no)=5/14 = 0.36
    P(Wind=Stong| PlayTennis =yes)=3/9=0.33,p(Wind=Stong| PlayTennis=no)=3/5 = 0.6
    其他数据类似可得,代入后得到:
    P(yes)P(Sunny|yes)P(Cool|yes)P(high|yes)P(Strong|yes) =0.0053
    P(no)P(Sunny|no)P(Cool|no)P(high|no)P(Strong|no)=0.0206
    因此应该分类到no这一类中。
    贝叶斯文本分类算法
    好了,现在开始进入本文的主旨部分:如何将贝叶斯分类器应用到中文文本的分类上来?
    根据联合概率公式(全概率公式)

    M——训练文本集合中经过踢出无用词去除文本预处理之后关键字的数量。

    参考文献:

    http://www.cnblogs.com/LeftNotEasy/archive/2010/09/27/1837163.html 贝叶斯、概率分布与机器学习

    http://blog.csdn.net/pongba/article/details/2958094 刘未鹏的经典博文

相关文章推荐

朴素贝叶斯算法

朴素贝叶斯分类算法 一  算法基本内容   朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法。对于给定的数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布。然后基于此模型,对给定的...

机器学习笔记:朴素贝叶斯方法(Naive Bayes)原理和实现

机器学习笔记:朴素贝叶斯方法(Naive Bayes)原理和实现本文主要描述了朴素贝叶斯分类方法,包括模型导出和学习描述。实例部分总结了《machine learning in action》一书中展...

数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

贝叶斯分类器  贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。目前研究较多的贝叶斯分类器主要有四种...

数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

贝叶斯分类器   贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。目前研究较多的贝叶斯分类器主要有...

数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

贝叶斯分类器   贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。目前研究较多的贝叶斯分类器主要有...

数据挖掘经典算法复现:朴素贝叶斯

原理: P(Ci|W)   = P(w1w2…wn|C)P(Ci) / P(W) Ci为类别

机器学习经典算法-贝叶斯学习之朴素贝叶斯分类器

机器学习经典算法-贝叶斯学习之朴素贝叶斯分类器
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)