朴素贝叶斯(NB)复习总结

摘要:

  1.算法概述

  2.算法推导

  3.算法特性及优缺点

  4.注意事项

  5.实现和具体例子

内容:

1.算法概述

  贝叶斯分类算法是统计学的一种分类方法,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该对象所属的类。

之所以称之为"朴素",是因为贝叶斯分类只做最原始、最简单的假设:

  1,所有的特征之间是统计独立的;

  2,所有的特征地位相同。那么假设某样本x有a1,...,aM个属性

那么有:P(x)=P(a1,...,aM) = P(a1)*...*P(aM);这里给出NB的模型函数:

 根据变量的分布不同,NB也分为以下3类:

  朴素贝叶斯的高斯模型(连续变量,符合高斯分布)

  朴素贝叶斯的多项式模型(离散变量,符合多项分布),NLP分类中典型假设

  朴素贝叶斯的伯努利模型(离散变量,符合二项分布),在文本分类的情境中,被用来训练和使用这一分类器的是词语同现向量

2.算法推导

  贝叶斯定理:

其中P(A|B)是在B发生的情况下A发生的可能性。

在贝叶斯定理中,每个名词都有约定俗成的名称:

P(A)是A的先验概率边缘概率。之所以称为"先验"是因为它不考虑任何B方面的因素。

P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率

P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率

P(B)是B的先验概率边缘概率,也作标准化常量(normalizing constant).

由贝叶斯公式和各特征相互独立的情况下,将贝叶斯公式A替换为y,B替换为X;得到如下公式:

y的后验概率的计算方法:

1,离散分布-当特征属性为离散值时,只要统计训练样本中各个划分在每个类别中出现的频率即可用来估计P(a|y)。

2,连续分布-当特征属性为连续值时,通常假定其值服从高斯分布(正态分布)。

即:,而

取对数:

  实际项目中,概率P往往是值很小的小数,连续的微小小数相乘容易造成下溢出使乘积为0或者得不到正确答案。一种解决办法就是对乘积取自然对数,将连乘变为连加,ln(AB)=lnA+lnB。

3.算法特性及优缺点

  优点:算法简单、所需估计参数很少、对缺失数据不太敏感。另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算。朴素贝叶斯属于生成式模型,收敛速度将快于判别模型(如逻辑回归);对缺失数据不太敏感

  缺点:因为朴素贝叶斯分类假设样本各个特征之间相互独立,这个假设在实际应用中往往是不成立的,从而影响分类正确性;不能学习特征间的相互作用;对输入数据的表达形式很敏感。

4.注意事项

  Laplace校准:

  修改后的表达式为:每个z=j的分子都加1,分母加k。

  

5.实现和具体例子

  文本分类:http://blog.jasonding.top/2015/04/23/Machine%20Learning%20Experiments/【机器学习实验】使用朴素贝叶斯进行文本的分类

   垃圾邮件过滤:吴恩达的斯坦福公开课

  

时间: 2024-11-09 00:15:17

朴素贝叶斯(NB)复习总结的相关文章

【cs229-Lecture5】生成学习算法:1)高斯判别分析(GDA);2)朴素贝叶斯(NB)

参考: cs229讲义 机器学习(一):生成学习算法Generative Learning algorithms:http://www.cnblogs.com/zjgtan/archive/2013/06/08/3127490.html 首先,简单比较一下前几节课讲的判别学习算法(Discriminative Learning Algorithm)和本节课讲的生成学习算法(Generative Learning Algorithm)的区别. eg:问题:Consider a classi?cat

机器学习:线性分类、高斯判别分析(GDA)、朴素贝叶斯(NB)

简介:这篇文章主要介绍简单的二分类算法:线性分类器.高斯判别分析.朴素贝叶斯. 一.线性分类器 加入给定如下两类数据(0-1),目测分类器应该对这组数据进行这样的划分.图中,红色样本点表示0,蓝色样本点表示1. 原始数据显示为三维如下: 现在运用前一节介绍的线性拟合来进行分类,即线性分类器.当拟合出来的y值大于等于0.5,则归为1,:否则归为0. 代码如下: %% %线性分类器 function Classification_Liner %% clc; clear all; close all;

高斯判别分析、朴素贝叶斯和逻辑回归

近来看论文中经常看到GDA和朴素贝叶斯,并且论文中说的算法中用到的贝叶斯公式,对怎么用的原理比较困惑,今天主要看了斯坦福机器学习的关于GDA,NB和LR的讲义部分.理解了贝叶斯公式在GDA和NB中的原理,以及GDA和LR的关系. 与以前学习贝叶斯公式相比贝叶斯公式:对于目标B有不同的到达方式Ai,i=1,2,3,...,n.已知p(Ai)和p(B|Ai)的话,如果知道B发生了,可以知道Ai的后验概率. 贝叶斯公式图示 在GDA和NB中,类别标签就相当于Ai,每一个特征相当于B的一个分量.根据采集

Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可:这种直接对问题求解的方法可以称为判别学习方法. 而生成学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模板,匹配度较高的作为新样例的类别,比如分辨大象(y=1)和狗(y=0),首先,观察大象,然后建立一个大

Stanford大学机器学习公开课(六):朴素贝叶斯多项式模型、神经网络、SVM初步

(一)朴素贝叶斯多项式事件模型 在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM).该模型有多种扩展,一种是在上一篇笔记中已经提到的每个分量的多值化,即将p(xi|y)由伯努利分布扩展到多项式分布:还有一种在上一篇笔记中也已经提到,即将连续变量值离散化.本文将要介绍一种与多元伯努利事件模型有较大区别的NB模型,即多项式事件模型(Multinomial Event Model,一下简称NB-M

数据挖掘|朴素贝叶斯算法

作者:张一 链接:https://zhuanlan.zhihu.com/p/21571692 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 因为后期的项目将涉及到各种各样的价格数据处理问题,所以我们现在开始学习一些简单的数据清洗与算法的知识.关于算法,以前听起来觉得好高大上,现在开始学,觉得书上的描述并不是很通俗易懂,所以用自己的语言来简要写一下这些算法~ 注:非商业转载注明作者即可,商业转载请联系作者授权并支付稿费.本人已授权"维权骑士"网站(ht

概率--学习朴素贝叶斯分布

概率是一种基于事件发生可能性来描述未来趋势的数学工具.其本质就是通过过去已经发生的事情来推断未来事件,并且将这种推断放在一系列的公理化的数学空间当中进行考虑.例如,抛一枚均质硬币,正面向上的可能性多大?概率值是一个0-1之间的数字,用来衡量一个事件发生可能性的大小.概率值越接近于1,事件发生的可能性越大,概率值越接近于0,事件越不可能发生.天气预报员通常会使用像"明天80%的可能性会下雨"这样的术语来对降雨进行预测,这里70%或者0.7就是下雨的概率.在现实生活中,要么下雨,要么不下雨

机器学习Matlab实战之垃圾邮件分类————朴素贝叶斯模型

本系列来自于我<人工智能>课程复习总结以及机器学习部分的实验总结 垃圾邮件分类是监督学习分类中一个最经典的案例,本文先复习了基础的概率论知识.贝叶斯法则以及朴素贝叶斯模型的思想,最后给出了垃圾邮件分类在Matlab中用朴素贝叶斯模型的实现 1.概率 1.1 条件概率 定义:事件B发生的情况下,事件A发生的概率记作条件概率P(A|B) P(A|B)=P(A∧B)P(B) 条件概率也叫后验概率,无条件概率也叫先验概率(在没有任何其它信息存在的情况下关于命题的信度) 可以得到乘法规则: P(A∧B)

斯坦福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).这一节介绍的