机器学习——贝叶斯分类算法

  1. 前言

贝叶斯分类,是机器学习中比较重要并被广泛使用的一个分类算法,它分类思想主要基于贝叶斯定理。用一句话来描述就是,如果一个事件A发生时,总是伴随事件B,那么事件B发生时,事件A发生的概率也会很大。

贝叶斯分类一个很常见的用途是用在识别垃圾邮件上。我们给定一个学习集,程序通过学习集发现,在垃圾邮件中经常出现"免费赚钱"这个词,同时"免费赚钱"这个词又在垃圾邮件中更容易出现。那么在实际判断中,我们发现邮件中出现"免费赚钱",就可以判定邮件是垃圾邮件。

其实我们每个人,我们的大脑每天都会执行分类操作,而且思考的过程和贝叶斯分类很像。我们可以想象一下,我们自己是如何识别垃圾邮件的。我们识别垃圾邮件总会有一定的规则,比如邮件中含有XX关键词,邮件描述信息太离谱了,邮件的发送人不认识,邮件中包含钓鱼网站。而这些规则,我们都是通过以往的经验总结出来的。通过这些规则,我们就可以判定邮件是垃圾邮件的概率更大,还是非垃圾邮件的概率更大。

  1. 贝叶斯定理

首先我们要知道,P(A),P(B)分别是事件A,B发生的概率,而P(A|B)是在事件A在事件B发生的前提下发生的概率,P(AB)是事件A,B同时发生的概率。那么我们的有公式:

那么贝叶斯定理是:

注:P(AB)=P(A)P(B)的充分必要条件是事件A和事件B相互独立。用通俗的语言讲就是,事件A是否发生不会影响到事件B发生的概率。

我们举例说明,比如我们抽取了100封邮件,经过统计如下表:


包含"免费赚钱"


不包含"免费赚钱"


总数


垃圾邮件


40


10


50


非垃圾邮件


5


45


50


总数


45


55

我们设P(B)是垃圾邮件事件的概率,P(A)是包含"免费赚钱"关键词事件的概率。

那么表示非垃圾邮件的概率,表示不包含"免费赚钱"的概率。

我们可以知道:

P(B)=50/(50+50)=0.5

P(A)=45/(45+55)=0.45

P(A|B)=40/50=0.8(在是垃圾邮件的前提下,包含"免费赚钱"的概率)

因此可以计算得到,如果邮件中包含"免费赚钱"关键字是垃圾邮件的概率是:

而是非垃圾邮件的概率是:

因此,包含"免费赚钱"关键字的邮件是垃圾邮件概率是88.9%,按照贝叶斯分类的理论,我们可以把它判定成垃圾邮件。

  1. 朴素贝叶斯分类

现实生活中的情况,通常比我们上面所举得例子复杂的多。比如我们分类的结果,可能不止有两个类别(是垃圾邮件,非垃圾邮件),就像我们在做文章分类的时候,可能的类别有社会,军事,体育,娱乐,财经,科技等很多个类别。还有我们作为分类依据的特征,通常不止1个,可能有几十个甚至有上千个。

这是我们的表达式是这样的:

P(Y=Ck)表示Y是第K个分类的概率。P(X=x)表示X的特征组合是x的概率。

比如如果我们有100个特征,每个特征都只包含2种情况(比如是或否,包含或不包含)。那我们可能特征组合就是2的100次方。

这时我们要计算所有特征的组合的P(X=x),就要计算2的100次方次,这个计算量就太庞大了,根本无法完成。

因此朴素贝叶斯为了解决这个计算量庞大的问题,它假设所有的特征都是相互独立的,这样大大的简化了计算的复杂程度,但同时也会降低分类的准确率。在贝叶斯定理一节,我们已经说过,P(AB)=P(A)P(B)的充分必要条件是事件A和事件B相互独立。因此我们可以得到:

P(X=x)=P(X1=x1)*P(X2=x2)*…*P(X100=x100)

所以我们只需要计算出每个特征单独发生或不发生(假设每个特征只包含两种情况)的概率,然后想成根据实际情况组合相乘就好了。

同理:P(X=x|Y=Ck)=P(X1=x1,X2=x2,…,Xn=xn|Y=Ck)(表示Y是第K类的前提下,同时发生X1=x1,..Xn=xn事件的概率)

= (表示P(X1=x1|Y=Ck)连乘到P(Xn=xn|Y=Ck))

下面我们先介绍一下全概率公式:

假设A,B事件的关系如下:

那么我们可以得到:

因此根据上述公式,我们可以得到:

最终分类器可以表示为:

即在X已知的情况下,计算所有Y的可能值,选择出概率最大的哪一类,就是我们分类的结果。

时间: 2024-08-05 22:11:51

机器学习——贝叶斯分类算法的相关文章

机器学习——贝叶斯分类算法详解

一. 前言 贝叶斯分类,是机器学习中比较重要并被广泛使用的一个分类算法,它分类思想主要基于贝叶斯定理.用一句话来描述就是,如果一个事件A发生时,总是伴随事件B,那么事件B发生时,事件A发生的概率也会很大. 贝叶斯分类一个很常见的用途是用在识别垃圾邮件上.我们给定一个学习集,程序通过学习集发现,在垃圾邮件中经常出现“免费赚钱”这个词,同时“免费赚钱”这个词又在垃圾邮件中更容易出现.那么在实际判断中,我们发现邮件中出现“免费赚钱”,就可以判定邮件是垃圾邮件. 其实我们每个人,我们的大脑每天都会执行分

机器学习经典算法详解及Python实现---朴素贝叶斯分类及其在文本分类、垃圾邮件检测中的应用

摘要: 朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类.总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型:当各特征相关性较小时,朴素贝叶斯分类性能最为良好.另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算.本文详述了朴素贝叶斯分类的统计学

《机器学习实战》基于朴素贝叶斯分类算法构建文本分类器的Python实现

============================================================================================ <机器学习实战>系列博客是博主阅读<机器学习实战>这本书的笔记,包括对当中算法的理解和算法的Python代码实现 另外博主这里有机器学习实战这本书的全部算法源码和算法所用到的源文件,有须要的留言 ====================================================

从决策树学习谈到贝叶斯分类算法、EM、HMM

从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 近期在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描写叙述下自己所知道的几种分类或聚类算法(当然,这全然不代表你将来的面试中会遇到此类问题,仅仅是由于我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西仅仅知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来经常回想思考.行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉. 本文借鉴和參考了两本书,

朴素贝叶斯分类算法原理分析与代码实现

前言 本文介绍机器学习分类算法中的朴素贝叶斯分类算法并给出伪代码,Python代码实现. 词向量 朴素贝叶斯分类算法常常用于文档的分类,而且实践证明效果是挺不错的. 在说明原理之前,先介绍一个叫词向量的概念. --- 它一般是一个布尔类型的集合,该集合中每个元素都表示其对应的单词是否在文档中出现. 对应关系和词汇表一一对应. 比如说,词汇表只有三个单词:'apple', 'orange', 'melo',某文档中,apple和melo出现过,那么其对应的词向量就是 {1, 0, 1}. 这种模型

机器学习经典算法详解及Python实现--决策树(Decision Tree)

(一)认识决策树 1,决策树分类原理 近来的调查表明决策树也是最经常使用的数据挖掘算法,它的概念非常简单.决策树算法之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工作的.直观看上去,决策树分类器就像判断模块和终止块组成的流程图,终止块表示分类结果(也就是树的叶子).判断模块表示对一个特征取值的判断(该特征有几个值,判断模块就有几个分支). 如果不考虑效率等,那么样本所有特征的判断级联起来终会将某一个样本分到一个类终止块上.实际上,样本所有特征中有一些特征

scikit-learn学习之贝叶斯分类算法

版权声明:<-- 用心写好你的每一篇文章,转载请注明出处@http://blog.csdn.net/gamer_gyt <-- 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 转载请注明出处,谢谢 ======================================

第五篇:朴素贝叶斯分类算法原理分析与代码实现

前言 本文介绍机器学习分类算法中的朴素贝叶斯分类算法并给出伪代码,Python代码实现. 词向量 朴素贝叶斯分类算法常常用于文档的分类,而且实践证明效果挺不错的. 在说明原理之前,先介绍一个叫词向量的概念. --- 它一般是一个布尔类型的集合,该集合中每个元素都表示其对应的单词是否在文档中出现. 比如说,词汇表只有三个单词:'apple', 'orange', 'melo',某文档中,apple和melo出现过,那么其对应的词向量就是 {1, 0, 1}. 这种模型通常称为词集模型,如果词向量元

从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看

从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇到此类问题,只是因为我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西只知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来常常回顾思考.行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉. 本文借鉴和参考了两本书,一本是T