美文网首页机器学习程序员今日看点
机器学习笔记--朴素贝叶斯

机器学习笔记--朴素贝叶斯

作者: 七号萝卜 | 来源:发表于2017-03-27 10:58 被阅读383次

朴素贝叶斯法是以概率的角度来进行分类的。就是求新输入的那个实例量x在哪个分类Y的概率大,如果在Y=c1类里面的概率大,则x属于c1类。换句话说就是在分类是c1的情况(条件)下,这个实例x满足它各个特征的概率最大,即P(X=x|Y=c1)的概率最大。

|方法 |适用问题 | 模型特点 |模型类别|学习策略|学习的损失函数|学习算法|
|:--- | ---------: | :-------: | :---:|:----------:|
|朴素贝叶斯法|多类分类|特征与类别的联合概率分布,条件独立假设|生成模型|极大似然估计,极大后验概率估计|对数似然损失|概率计算公式,EM算法|

先看看贝叶斯公式:

贝叶斯公式

在机器学习的视角中,比如分类问题,如想看看具有某特征的东西属于某一类,设X为具有某特征;Y为属于某类;那么这时的贝叶斯公式表示就是:

分类问题的贝叶斯公式

也就是说贝叶斯方法把计算“具有某特征的条件下属于某类”的概率转换成了计算“属于某类的条件下具有某特征”的概率。

比较常用的就是用在文本的分类里,用一个例子来介绍的话,就比如给一句话,想要看看这句话是偏积极还是偏消极的,如下面一句话:

我今天真的是蛮高兴的

如何用贝叶斯来判断呢?这时候,我们其实要求的就是P(“积极”|“我今天真的是蛮高兴的”)的概率。

那么如何求P呢?由于一句话太长了,我们通常先将它进行分词操作,分词后用就变成了这样:

用上贝叶斯公式,就是求:

那里面的P("积极")就是其先验概率。

但这样还是不好算,尤其是那前面一串词在一起的联合概率。因此在这里就有个前提假设:“朴素”的认为每个词为条件独立的。这样的话,条件联合概率就可以化为:

这就是朴素贝叶斯的思想。

为什么叫朴素呢?因为这样独立假设后,每个词就相当于是单独的了,相互之间是没有联系的(这里也是词袋模型的特点,将分词后的词一股脑的装进袋里,那些词之间有没有什么联系,我们并不考虑)。因为有乘法交换律嘛。这样“我是中国人”和“中国人是我”的概率就会是一样的,把它们看成了同一个句子,这从逻辑上并不太合理。

虽然朴素贝叶斯像如上的分类并不考虑词间的顺序等因素,用的就是假设条件概率独立。但从效果上来看还是比较好的,比如《黑客与画家》中就举了个例子,朴素贝叶斯在垃圾邮件识别中:

1000封垃圾邮件中能够被过滤掉995封,并且没有一个误判。
------ By 《黑客与画家》

朴素贝叶斯的三种模型

朴素贝叶斯有三种模型,这些其实就是根据求概率时的不同来规定的。比如一封垃圾邮件中有如下一句话:

代开发票、增值税发票、正规发票。

当用朴素贝叶斯公式的时候,概率就是:P(“代开”,“发票”,“增值税”,“发票”,“正规”,“发票”|S=“垃圾邮件”)

这时候,我们发现这些词里面有多个重复出现的词语,我们需不需要重复算呢?有几种方法来选择处理这个概率,下面来看看:

1.就按平常的方法来,直接将联合概率拆开,重复的词语就视为出现多次,像变成这样:

P(“代开”|S) P(“发票”|S) P(“增值税”|S) P(“发票”|S) P(“正规”|S) P(“发票”|S)

这样统计和判断时,“发票”出现了三次就记三次。我们关注重复次数,就是多项式模型

2.另一种是不用考虑词语是否重复,一律按照一次来算,这样上面的概率就写为:

*P(“代开”|S) P(“发票”|S) P(“增值税”|S) P(“正规”|S) *

这种就叫做伯努利模型,这样做的话能够简化算法。不过由于每个文档中词只统计一次,有一定的词频损失。

3.如果将上面两种结合起来用,就是混合模型。在计算句子概率的时候,不考虑重复词语出现的次数;但在统计计算词语的概率P时,考虑重复词语的出现次数。

平滑

下面来看看平滑技术。

由于我们前面在算概率的时候,容易出现概率为0的值,这样的话将会导致最后的结果也为0,常常会引起错误。比如上面的话:


如果在给出的训练集中,“今天”这个词从来没有出现过,这时候P("今天"|"积极")这个概率就等于0,其结果将导致整个联合概率都为0了。这当然是不允许的。因此我们需要进行处理一下,这个处理就叫做平滑。

一般来说,我们进行的平滑可以是拉普拉斯平滑:

拉普拉斯平滑

也就是像上面一样,假设有N篇文档,在每个文档的词频上都加上一个1,这样就不会出现值为0的结果了。

其实如果不是加1,而是一个整数λ>=0,被称为贝叶斯估计。拉普拉斯平滑就是λ=1时的名称了。

朴素贝叶斯是一个比较简单的算法,整个流程就如上所述。最后来看看《统计学习方法》书中给出的朴素贝叶斯算法:

看着贝叶斯公式来对应:

贝叶斯公式

其实要求的就是P(Y)先验概率和P(X|Y)条件概率,这些都是统计求频率来的。

还可以看到分母并没有用,因为:

分母对于所有分类来说都是不变的,因此可以直接忽略。

最后,书上还有个朴素贝叶斯具体的例子可以看一下:

相关文章

  • 机器学习实战 朴素贝叶斯

    title: 朴素贝叶斯 机器学习实战date: 2019-07-28tags: 机器学习 贝叶斯categori...

  • 机器学习数学原理(4)——朴素贝叶斯模型

    机器学习数学原理(4)——朴素贝叶斯模型 朴素贝叶斯模型(Naive Bayes Model),是一种基于贝叶斯定...

  • 朴素贝叶斯

    学习机器学习最简单的算法可以说就是 朴素贝叶斯了,今天分享下自己的学习心得。 什么是贝叶斯,什么是朴素贝叶斯 贝叶...

  • 朴素贝叶斯法

    朴素贝叶斯法 朴素贝叶斯法的学习与分类 朴素贝叶斯法的参数估计 朴素贝叶斯实现 高斯朴素贝叶斯实现 使用 skle...

  • 朴素贝叶斯分类算法

    朴素贝叶斯分类算法多项式和高斯朴素贝叶斯的解释 朴素贝叶斯是一种有监督的机器学习方法,是概率分类器家族的一员。它采...

  • Task4

    传统机器学习 一、朴素贝叶斯朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。对...

  • 机器学习 Day 12 | 朴素贝叶斯基础

    机器学习第十二天 基于概率论的分类方法:朴素贝叶斯 朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均...

  • 机器学习笔记--朴素贝叶斯

    朴素贝叶斯法是以概率的角度来进行分类的。就是求新输入的那个实例量x在哪个分类Y的概率大,如果在Y=c1类里面的概率...

  • Scikit-Learn 朴素贝叶斯分类丨数析学院

    朴素贝叶斯分类是机器学习中常见的分类方法之一,本节将带大家深入学习一下 Scikit-Learn 中朴素贝叶斯分类...

  • 统计学习方法笔记(第四章个人笔记)

    统计学习方法笔记(第四章个人笔记) 标签: 统计学习方法 朴素贝叶斯法 描述:朴素贝叶斯法是基于贝叶斯定理与特征条...

网友评论

本文标题:机器学习笔记--朴素贝叶斯

本文链接:https://www.haomeiwen.com/subject/imokmttx.html