模式识别之贝叶斯---朴素贝叶斯(naive bayes)算法及实现

处女文献给我最喜欢的算法了 ⊙▽⊙

---------------------------------------------------我是机智的分割线----------------------------------------------------

[important]

  阅读之前你需要了解:1、概率论与数理统计基础

            2、基本的模式识别概念

[begin]

  贝叶斯决策论是模式分类问题最基础的概念,其中朴素贝叶斯更是由于其简洁成为学习模式分类问题的基础。

  

  朴素贝叶斯的理论基础:源于概率论中的贝叶斯公式:P(wj|x)=p(x|wj)P(wj)p(x),其中wj代表类别j,x代表特征。

我们将P(wj)称为先验概率,p(x|wj)称为条件概率。

  目的:对于一系列事物我们已知他们的特征向量X(x1,x2,x3.....),以及他们一定属于类别集W={w1,w2,w3.....}中的某

一类,根据以上知识给出一个确定取值的特征向量X的事物,判断它的类别。

  /*如:给定几个学生的特征及类别:

身高(cm) 体重(kg) 性别
171 56
168 48
175 55
165 50

      根据以上知识,现在有一身高为169cm,体重49kg的学生,判断性别。

  */

  思路:当前我们的知识只有有限个已知的特征及类别(我们称之为训练集),根据他们来判断给定特征集合的类别(我

们称之为测试集)

      step1:假设我们已知学生中的男女比例为2:1,那么当我们遇到一个学生是男生的概率是2/3,女生的概率

    是1/3。这是我们唯一可以利用的信息,当新来一个同学时,在观察之前需要我们立即给出判断,那么我们似乎可

    以遵循这样的判别规则:若P(w|w=男)>P(w|w=女),则判定为男,否则判定为女。在一次判断中,

    这种规则是合理的,但当我们进行多次判断时,会发现会一直得到相同的结果。显然,单一的判断条件并不能给我

    们有效的解决问题的方法。

      step2:在实际的判断过程中我们并不会只利用单一的信息,我们再引入学生的身高信息,来提高我们判断的

    准确性。假定身高x是一个连续的随机变量,其分布取决于性别的状态,表示成p(x|w),这就是条件概率密度函数。

    表示类别为w时x的概率密度函数。因此,p(x|ww=男)与p(x|ww=女)的区别就表示了男生与女

    生在身高上的区别。

      step3:现在,假设我们已经知道了先验概率p(w1),p(w2)/*w1代表男生类别,w2代表女

      生类别*/,也知道了条件概率密度p(x|wj)(j=1,2)。那么处于类别wj,并具有特征值x的模式的联合概率

    密度我们可以写成以下形式p(wj,x)=P(wj|x)p(x)=p(x|wj)P(wj),整理上式,我们就可以得到贝叶斯公

    式P(wj|x)=p(x|wj)P(wj)p(x)。在两类问题中p(x)=∑2j=1p(x|wj)P(wj),

    这就是贝叶斯公式在分类问题中的解释。

      step4:观察贝叶斯公式我们可以发现 ,通过观测x的值我们可以将先验概率P(wj)转化为后验概率的形式P(wj|x)

    即假设特征值x已知的条件下类别属于wj的概率。我们又称p(x|wj)为wj关于x的似然函数,即

    在其他条件都相等的情况下,使得p(x|wj)取值较大的wj更有可能是真是类别。

   /*重点理解p(x|wj)与p(wj|x)的含义:

      p(x|wj)表示已知类别为wj的前提下,特征为X的概率。是分类之前的已知知识,成为条件概率。

      p(wj|x)表示已知特征向量为X,求其属于类别wj的概率。是分类的判断条件,成为后验概率。

   */

  解决方法:

    有了上面的铺垫,我们现在可以尝试解决分类的问题。

      step1:要根据输入的对象特征向量X来判断其类别,假设我们已经建立了一个判别函数gi(x)/*表示

    特征向量为类别i的可能性*/,那么显然我们可以令gi(x)=p(wi|x)=p(x|wj)P(wj)p(x)

    对每一个类别wj我们可以分别计算其g(x)的取值。还可以得出判别规则为:若gi(x)>gj(x),则判为

    wi,否则判为wj。

      step2:由概率论知识我们还可以将gi(x)简化为gi(x)=p(x|wj)P(wj)的形式/*或者用其对数式表

    示gi(x)=lnp(x|wj)+lnP(wj),效果相同*/。然后根据判断条件找出最符合的类别。

      到这里就结束了吗?nonononono,上面的理论只能称之为贝叶斯理论,他还不够“朴素”。

      step3:概率论中我们有这样的结论:对于p(a,b,c),若a,b,c互相独立,则有p(a,b,c)=p(a)p(b)p(c)。

    那么,在我们的gi(x)中我们也假设特征向量X中的每一个xj也互相独立,那么就有gi(x)=P(wj)∏nj=1p(xj|wi)

    这便是朴素贝叶斯的表达式。

  /*

    下面我们可以解决学生的性别判断问题了:

      设身高用x1表示,体重用x2表示

      那么根据训练集知识,我们可以分别求出p(x1|wj)和p(x2|wj)在所有类别下的概率分布,然后对

    于任意给定的特征向量X=(x1,x2),求出max{P(wi)∏nj=1p(xi|wj)}对应的最大类别i,即

    就是特征向量X的朴素贝叶斯预测类别。

  */

  意义:

      "模式识别中的贝叶斯理论由于其权威性、一致性和典雅性而被列为最优美的科学公式之一。"

      在模式分类,数据挖掘等领域中,贝叶斯理论占据着重要地位,而朴素贝叶斯理论更是在实践中有着重要应用。作为一个

    理论,从统计学的观点出发,讨论出了具有指导意义的方法。其背后的哲学意义也发人深省(感兴趣的同学可以深入探讨)。

  不足:

      贝叶斯理论比较依赖于先验知识,对于先验知识模糊或缺失的情况还需要其他理论作补充(可以想想为什么)。

      朴素贝叶斯理论的条件独立假设在实际中会影响判断结果,尤其是特征之间相关度较高的时候。(有没有解决的方法)。

实现:(第一次写文章,没想到断断续续写了好久,看来还是太年轻=_=,实现后面再补吧)

[end]

收获:梳理了一遍朴素贝叶斯的知识,写文章时顺遍学习了LaTex语法编辑公式。

  欢迎交流指正讨论,随意转载,请注明作者及出处。??

参考资料:模式分类(Pattern Classification)第二版,(美)Richard O.Duda ,机械工业出版社

http://www.cnblogs.com/nslogmeng/p/4438215.html

时间: 2024-10-27 05:10:27

模式识别之贝叶斯---朴素贝叶斯(naive bayes)算法及实现的相关文章

Microsoft Naive Bayes 算法——三国人物身份划分

Microsoft朴素贝叶斯是SSAS中最简单的算法,通常用作理解数据基本分组的起点.这类处理的一般特征就是分类.这个算法之所以称为“朴素”,是因为所有属性的重要性是一样的,没有谁比谁更高.贝叶斯之名则源于Thomas Bayes,他想出了一种运用算术(可能性)原则来理解数据的方法.对此算法的另一个理解就是:所有属性都是独立的,互不相关.从字面来看,该算法只是计算所有属性之间的关联.虽然该算法既可用于预测也可用于分组,但最常用于模型构建的早期阶段,更常用于分组而不是预测某个具体的值.通过要将所有

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

贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种,各自是:Naive Bayes.TAN.BAN和GBN. 贝叶斯网络是一个带有概率凝视的有向无环图,图中的每个结点均表示一个随机变量,图中两结点 间若存在着一条弧,则表示这两结点相相应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的.网络中随意一个结点X 均有一个对应的条件概率表(Con

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

贝叶斯分类器 贝叶斯分类分类原则是一个对象的通过先验概率.贝叶斯后验概率公式后计算.也就是说,该对象属于一类的概率.选择具有最大后验概率的类作为对象的类属.现在更多的研究贝叶斯分类器,有四个,每间:Naive Bayes.TAN.BAN和GBN. 贝叶斯网络是一个带有概率凝视的有向无环图.图中的每个结点均表示一个随机变量,图中两结点 间若存在着一条弧.则表示这两结点相相应的随机变量是概率相依的,反之则说明这两个随机变量是条件独立的.网络中随意一个结点X 均有一个对应的条件概率表(Conditio

基于Naive Bayes算法的文本分类

理论 什么是朴素贝叶斯算法? 朴素贝叶斯分类器是一种基于贝叶斯定理的弱分类器,所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关.举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果可以被判定为是苹果.尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的. 朴素贝叶斯分类器很容易建立,特别适合用于大型数据集,众所周知,这是一种胜过许多复杂算法的高效分类方法. 贝叶斯公式提供了计算后验概率P(X|Y)的方式: 其

基于朴素贝叶斯的花生品种识别

最近一段时间,正在学习机器学习与模式识别,为了验证算法,仍然用了之前做过的项目的一些图片作为数据采集的样本,进行数据采集.前段时间,做了一个花生籽粒的识别程序,是基于SVM+HOG的,这次则是采用朴素贝叶斯来进行识别.采集了20个品种,每个品种50个样本,共1K个数据. 朴素贝叶斯分类器(Naive Bayes Classifier,或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率.同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单.理论上,NBC模型与

斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型

生成学习与判别学习 像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) :或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning).与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0).这一节介绍的

机器学习之朴素贝叶斯分类器

朴素贝叶斯分类器 (naive bayes classifier, NBC) 是一种常见且简单有效的贝叶斯分类算法.对已知类别,朴素贝叶斯分类器在估计类条件概率时假设特征之间条件独立.这样的假设,可以使得在有限的训练样本下,原本难以计算的联合概率 \(P(X_1, X_2, \cdots, X_n | Y)\) 转化为每个类别条件概率的乘积.尤其是在特征很多时,就显得更加简便. 条件独立性 给定 X, Y 条件独立,则有: \[ P(X,Y|Z)=P(X|Z)\times P(Y|Z) \] 有

[白话解析] 深入浅出朴素贝叶斯模型原理及应用

[白话解析] 深入浅出朴素贝叶斯模型原理及应用 0x00 摘要 朴素贝叶斯模型是机器学习中经常提到的概念.但是相信很多朋友都是知其然而不知其所以然.本文将尽量使用易懂的方式介绍朴素贝叶斯模型原理,并且通过具体应用场景和源码来帮助大家深入理解这个概念. 0x01 IT相关概念 1. 分类问题 已知m个样本 (x1,y1), ...... (xm,ym),x是特征变量,y是对应的类别.要求得一个模型函数或者映射规则h,对于新的样本 xt,能够尽量准确的预测出 yt = h(xt). 我们也可以从概率

贝叶斯、朴素贝叶斯及调用spark官网 mllib NavieBayes示例

贝叶斯法则 机器学习的任务:在给定训练数据D时,确定假设空间H中的最佳假设. 最佳假设:一种方法是把它定义为在给定数据D以及H中不同假设的先验概率的有关知识下的最可能假设 贝叶斯理论提供了一种计算假设概率的方法,基于假设的先验概率.给定假设下观察到不同数据的概率以及观察到的数据本身 先验概率和后验概率 用P(A)表示在没有训练数据前假设A拥有的初始概率.P(A)被称为A的先验概率. 先验概率反映了关于A是一正确假设的机会的背景知识 如果没有这一先验知识,可以简单地将每一候选假设赋予相同的先验概率