朴素贝叶斯

一、随机变量

可以取不同的值,不同的值有不同的概率。

看到随机变量取任何值,都要想到背后有个概率,如果是连续变量,在每一点的概率是0,连续型随机变量通常只考虑概率密度。

机器学习就是通过一堆随机变量预测另一个随机变量,先假设随机变量之间的概率分布,然后从数据中估计分布的参数。

任何概率模型的假设都是简化,不能完全刻画数据,并且每个模型都有其适用范围,比如朴素贝叶斯对于文本分类效果好。

二、贝叶斯定理

贝叶斯定理给出了从一种条件概率P(B|A)怎么推到另一种条件概率P(A|B):

这个东西有什么用呢,P(A|B)可能是个不好算的量,而P(B|A)好算,所以可以通过好算的变量推出不好算的变量。

三、贝叶斯定理在机器学习中的应用

在机器学习中,A:未知参数/类别   B: 已知数据(层次贝叶斯中也可能是参数),如果是已知数据的话,P(B)就是个常数,不是很重要。

P(A)根据常理指定不同参数/类别的先验概率,这个数不准一般不是很要紧,一般P(B|A)会比较大。  P(B|A)模型假设的分布,指定参数A,数据B就能根据假设分布求出P(B|A)。

四、联合分布

联合分布的表格表示法,用表格把各种情况的联合概率都穷举出来,可做统计推断,把P(C高)的格子里的概率都加起来,然后用P(K强腿,C高)除以那个前面那个概率和。

但这种方法需要做很大的表格,参数很多,并且需要完整的表格才可以;另外表示不了连续变量。如何改善呢?

并不是所有变量都是相关的,可以通过常识,分析变量间的关系,利用变量间独立/相关的关系,把分布分解为多个因子,由此而来著名的贝叶斯网络:可以看出这个网络之间变量的关系都是有向的,有向边:随机变量间的相关性(实质上是条件概率分布)。边的方向怎么决定了,一般是找到最自由的变量(不怎么受其他因素影响),然后找到这些变量影响了哪些因素。

每个节点和它的父节点组成因子,下图中有三个因子。联合分布分解成各因子的乘积。这个时候就可以通过知道各个因子的概率,从而知道整体所有的概率,大大简化了上面大表格的情况了。

下图中显示了,我们需要知道的各个因子的概率情况。我们可以数一数下图中有多少个参数呢,总共格子有24个,但是由于没有行的和的概率都是1,所以实际的参数只有15个,远远小于之前的全表格47个。

由此引出了贝叶斯网络的应用:

  1. 可以用过智商测试的值推测智商,也就是由子节点推测父节点。
  2. 观测变量间独立性

F只受K和Z影响

Z未知: F和C相关(通过Z “传递”相关性)

Z已知: F和C独立(C中所有能影响F的信息都已包含在Z中)

当Z已知时,可以利用此估计

复杂的贝叶斯网络是LDA主题模型。超参(参数的参数)

五、朴素贝叶斯模型

垃圾邮件分类。垃圾邮件和正常邮件的用词不同但是不可能手工指定。解决方案:纯数据驱动的方法,给两个邮件训练集,分别是垃圾邮件和正常邮件,计算垃圾邮件和正常邮件里各自的词/语句的分布,新邮件s, 估计p(s|垃圾)和p(s|正常),贝叶斯公式可算出 ??(垃圾|新邮件):

1.先分词: 邮件 s={我司,可,办理,正规,发票, 保真,增值税,发票,点数, 优惠}

2.我们需要算出的是, 在词x1x2 X3 等同时出现时,新邮件属于C类的概率最大化。其中分母最终归一化为常数。

如果假设均匀先验, 那么只需要

如果这组词在”垃圾”类下概率可分解就好了=朴素贝叶斯假设(朴素贝叶斯的假设太过粗糙,比如“发票”和“增值税”经常一块出现,但还好该方法在文本挖掘中准确性较高,给定类别C情况下,每个特征独立。此时只需要算出每个词在某类中出现的概率,然后相乘,就可以得到一组词出现在垃圾邮件的概率。

但乘法概率太小会浮点数下溢,所以转到log空间。

但以上计算存在一个问题是,一旦存在缺失值问题,会把其他所有信息都抹杀了。为了防止此问题出现,我们在计算词频时,要给每一个词频加上一个很小的“伪计数”

重复特征问题,如果重复特征 “连乘”处理,可能就会导致某一特征被放大好几次,比如下例子中“垃圾”这个词出现两次。重复特征连乘叫多项式模型

另一种模型,对于重复特征只考虑一次,每个特征只考虑出现,还是没出现,这种是伯努利模型,来自伯努利 (Bernoulli) 分布,一个随机变量要么为0要么为1。

可以两种都试下,看哪个效果好。有篇论文发现,伯努利模型在词汇表小的时候性能更好,多项模型在词汇表大的时候性能更好。

以上过程概括起来如下:

逻辑回归与朴素贝叶斯比较:

朴素贝叶斯模型是生成式模型(相比于辨别式模型更加强大,可以做无监督,一般需要的数据量很大)中最简单的例子,而逻辑回归是辨别式模型(不假设观察是什么分布,只关心观察怎么预测类别)中最简单的例子。如果特征不独立,朴素贝叶斯会有欠拟合的情况出现。

用频率估计可能出现 为0的情况,所以要进行调整。

实际是比较购买和不购买的后验概率。

时间: 2024-11-08 23:31:17

朴素贝叶斯的相关文章

《机器学习实战》笔记——朴素贝叶斯

运用贝叶斯公式(朴素贝叶斯假设每个特征每个特征都是独立的)可以解决的问题有,已知某些特征,用来判断某情况发生的可能性大小,设置可能性最大的情况作为预测值. 是一种监督算法. 广泛应用于垃圾邮件检测等等. 1 # _*_coding:utf-8_*_ 2 from numpy import * 3 4 # 4-1 词表到向量的转换函数(实验样本) 5 def loadDataSet(): 6 postingList = [['my', 'dog', 'has', 'flea', 'problems

关于朴素贝叶斯

朴素贝叶斯或者说基于贝叶斯理论的决策方法都是生成式模型.那么什么是生成式模型呢?生成式模型和判别式模型的概念分别是什么?大体来说,给定数据集x,可以直接通过建模P(c|x)来预测c,这样得到的是判别式模型.像BP网络,支持向量机,决策树都属于判别式模型.如果先对联合概率分布P(x,c)建模,然后再由此获得P(c|x),这样得到的生成式模型,例如朴素贝叶斯. 朴素贝叶斯应用的先决条件是"属性条件独立假设",即已知类别,假设所有属性相互独立.

我理解的朴素贝叶斯模型

我理解的朴素贝叶斯模型 我想说:"任何事件都是条件概率."为什么呢?因为我认为,任何事件的发生都不是完全偶然的,它都会以其他事件的发生为基础.换句话说,条件概率就是在其他事件发生的基础上,某事件发生的概率. 条件概率是朴素贝叶斯模型的基础. 假设,你的xx公司正在面临着用户流失的压力.虽然,你能计算用户整体流失的概率(流失用户数/用户总数).但这个数字并没有多大意义,因为资源是有限的,利用这个数字你只能撒胡椒面似的把钱撒在所有用户上,显然不经济.你非常想根据用户的某种行为,精确地估计一

NLP系列(4)_朴素贝叶斯实战与进阶(转)

http://blog.csdn.net/han_xiaoyang/article/details/50629608 作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50629608 http://blog.csdn.net/longxinchen_ml/article/details/50629613 声明:版权所有,转载请联系作者并注明出处 1.引言 前两篇博文介绍了朴素贝叶

机器学习实战读书笔记(四)基于概率论的分类方法:朴素贝叶斯

4.1 基于贝叶斯决策理论的分类方法 朴素贝叶斯 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 适用数据类型:标称型数据 贝叶斯决策理论的核心思想:选择具有最高概率的决策. 4.2 条件概率 4.3 使用条件概率来分类 4.4 使用朴素贝叶斯进行文档分类 朴素贝叶斯的一般过程: 1.收集数据 2.准备数据 3.分析数据 4.训练算法 5.测试算法 6.使用算法 朴素贝叶斯分类器中的另一个假设是,每个特征同等重要. 4.5 使用Python进行文本分类

朴素贝叶斯分类器

预备知识: 贝叶斯公式:A.B事件.在A发生条件下B发生的概率=在B发生条件下A发生的概率*B发生的概率/A发生的概率 P(B|A)=P(A|B)P(B) / P(A) 全概率公式: 特别的,设实验E的样本空间为S,A为E的事件,B1,B2,...,Bn为S的一个划分,且P(Bi)>0(i=1,2,...,n),则有P(A)=P(A|B1)*P(B1) + P(A|B2)*P(B2) + ... + P(A|Bn)*P(Bn) 故有贝叶斯的另一种形式: P(B[j]|A[i])=P(A[i]|B

挖掘算法(1)朴素贝叶斯算法

原文:http://www.blogchong.com/post/NaiveBayes.html 1 文档说明 该文档为朴素贝叶斯算法的介绍和分析文档,并且结合应用实例进行了详细的讲解. 其实朴素贝叶斯的概念以及流程都被写烂了,之所以写这些是方便做个整理,记录备忘.而实例部分进行了详细的描述,网络上该实例比较简单,没有过程. 至于最后部分,则是对朴素贝叶斯的一个扩展了,当然只是简单的描述了一下过程,其中涉及到的中文分词以及TFIDF算法,有时间再具体补上. 2 算法介绍 2.1 贝叶斯定理 (1

机器学习(五)—朴素贝叶斯

最近一直在看机器学习相关的算法,今天我们学习一种基于概率论的分类算法—朴素贝叶斯.本文在对朴素贝叶斯进行简单介绍之后,通过Python编程加以实现. 一  朴素贝叶斯概述                                                               1 前言 “贝叶斯”又是一个响当当的名字,刚开始接触的是贝叶斯定理.贝叶斯分类器是一类分类算法的总称,是两种最为广泛的分类模型之一,另一种就是上篇中的决策树了.贝叶斯分类均以贝叶斯定理为基础,朴素贝叶斯是

【机器学习实验】使用朴素贝叶斯进行文本的分类

引言 朴素贝叶斯由贝叶斯定理延伸而来的简单而强大的概率模型,它根据每个特征的概率确定一个对象属于某一类别的概率.该方法基于一个假设,所有特征需要相互独立,即任一特征的值和其他特征的值没有关联关系. 虽然这种条件独立的假设在许多应用领域未必能很好满足,甚至是不成立的.但这种简化的贝叶斯分类器在许多实际应用中还是得到了较好的分类精度.训练模型的过程可以看作是对相关条件概率的计算,它可以用统计对应某一类别的特征的频率来估计. 朴素贝叶斯最成功的一个应用是自然语言处理领域,自然语言处理的的数据可以看做是