mahou之朴素贝叶斯算法思想

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类

对于分类问题,其实谁都不会陌生,每个人生活中无时不刻的在进行着分类。例如,走在大马路上看到女孩子,你会下意识的将她分为漂亮和不漂亮(漂亮当然就多看几眼啦)。在比如,在路上遇到一只狗,你会根据这只狗的毛发脏不脏,然后想到这是一只流浪狗还是家养的宠物狗。这些其实都是生活中的分类操作。

而贝叶斯分类是在生活中分类的基础上加以概率数学来规定定义的一种分类方式

其基本概率公式为:

怎么理解这个公式呢,这里假设你没有概率数学的基础,或者说学过概率只是很久没用已经忘得差不多了(比如我。。。重新拿起大二的概率统计课本翻了一遍)

首先解释什么是条件概率:

表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。

求解这个概率的基本求解公式为:

假设AB两个事件是相互独立的(就是说AB两个事件谁发生都不影响谁,比如,同学A在北京感冒了,我在福建感冒了,两个事件是互不影响的)

事件B发生的前提下 A发生的概率=事件AB同时发生的概率/事件B发生的概率

一般在生活中,P(A|B)发生的概率我们很容易的就可以求得,但是要返回来求P(B|A)怎么办?

这就要用到贝叶斯公式了

根据这个公式我们可以再P(A|B)的基础上对P(B|A)进行计算,贝叶斯公式提供了人们一种可以根据结果来计算某个条件的前提下某个事件发生的概率

以上基础知识交代完毕,下面进入正题

朴素贝叶斯分类是贝叶斯分类中的一种十分简单的分类算法,看到朴素两个字就知道这种贝叶斯分类肯定很乡村~,用通俗的话来讲就是:你在国外旅游,遇见一个说中文的黄种人,那么你肯定会想,老乡啊!中国人!为啥?因为在国外遇到讲中文的大概都是中国人吧,只有一部分人是华侨或者其他国籍的华人,因为是中国人的概率最高,所以我们会认为他就是中国人,这就是朴素贝叶斯的思想。

朴素贝叶斯的思想严格的定义是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。其中在求解某个待分类项出现的条件下,各个类别出现的概率时,一般是根据该待分类项的特征属性来求的。

怎么理解呢,比如在什么艺校或者空乘的招聘现场,那肯定有n多女孩子,这些女孩子就是待分类项,而女孩子在我们眼中一般只是分为漂亮和不漂亮两种,这两种就是类别,现在用朴素贝叶斯算法来对这n个女孩子进行分类。

女孩集合={x1,x2.....xn}----->此为待分类项

类别集合={漂亮,不漂亮}

首先我们要找出女孩子的一些特征属性,比如脸蛋,身材等(假设就根据这两个特征来判断)

对于女孩的特征属性={脸蛋,身材}

对于其中一个女孩子,求此项出现的条件下各个类别出现的概率,一般是根据该待分类项的特征属性来求的,意思就是说,要根据这个女孩子的脸蛋(好看或者不好看)分别求出
在此脸蛋出现的前提下 是漂亮和不漂亮的概率;根据这个女孩子的身材(高矮胖瘦)分别求出 在此身材的前提下 是漂亮和不漂亮的概率。

但是,就比如说,一个在深山野林总生活了几十年从未见过女人的野人来说,如果他出山碰到一个女人,这个女人是他这辈子见到的第一个女人,那他凭什么来说这个女人是漂亮还是不漂亮的呢?根据脸蛋和身材?但是注意前提:这个野人之前从未见过女人,可能发生的情况是就算这个女人很丑,由于野人没有见过女人,他也会觉得很漂亮很性感,有一种莫名的吸引力

如上所说,生活中许许多多的判断都是建立在有经验的基础之上,正是因为我们周围有很多女同志,而且我们能够通过网络来看到更多的漂亮女孩子,所以我们能够在路上判断一个女孩是否漂亮

而之前我们要计算的  :要根据这个女孩子的脸蛋(好看或者不好看)分别求出 在此脸蛋出现的前提下 是漂亮和不漂亮的概率;根据这个女孩子的身材(高矮胖瘦)分别求出 在此身材的前提下 是漂亮和不漂亮的概率。

我们首先要有“经验”才能计算,所以我们需要一个女孩集合,然后分别对其的脸蛋和身材进行判断,得出这个女孩是否漂亮。这个女孩集合称为训练样本,没有训练样本贝叶斯分类将无法工作,因为它不知道如何判断

那么假设:我们处理完训练样本之后得到以下数据(这个过程为人为处理的,也是贝叶斯分类中唯一一个人为处理的步骤)

P(漂亮|脸蛋好看)=0.9

P(漂亮|脸蛋不好看)=0.1

P(漂亮|身材高)=0.6

P(漂亮|身材矮)=0.4

P(漂亮|身材胖)=0.3

P(漂亮|身材瘦)=0.5

P(不漂亮|脸蛋好看)=0.1

P(不漂亮|脸蛋不好看)=0.9

P(不漂亮|身材高)=0.4

P(不漂亮|身材矮)=0.7

P(不漂亮|身材胖)=0.8

P(不漂亮|身材瘦)=0.3

P(漂亮)=0.6

P(不漂亮)=0.4

我们得到的数据为在各个类别的前提下,各个特征属性出现的概率

这时候,如果给出一个女孩x1,脸蛋好看,身材矮,瘦,贝叶斯分类就可以根据训练样本的数据来判断x1是否漂亮

根据贝叶斯定理:

P(漂亮|女孩x1)=P(女孩x1|漂亮)*P(漂亮)/P(女孩x1)

P(不漂亮|女孩x1)=P(女孩x1|不漂亮)*P(不漂亮)/P(女孩x1)

由于P(女孩x1)对于所有类别(漂亮,不漂亮)是个常数,所以将分子最大化即可,变形如下:

P(女孩x1|漂亮)*P(漂亮)=P(漂亮|女孩x1)=P(漂亮|脸蛋好看)*P(漂亮|身材矮)*P(漂亮|身材瘦)*P(漂亮)=0.9*0.4*0.5*0.6=0.018

P(女孩x1|不漂亮)*P(不漂亮)=P(不漂亮|女孩x1)=P(不漂亮|脸蛋好看)*P(不漂亮|身材矮)*P(不漂亮|身材瘦)*P(不漂亮)=0.1*0.7*0.3*0.4=0.084

由于0.084>0.018

所以贝叶斯分类会将女孩x归入不漂亮的类别中

由于所有的数据都是假设的,所以结果不准确那是肯定的(因为我自己觉得脸蛋好看,身材矮,瘦应该是属于漂亮的。。最后计算出来竟然是相反的)

从这里面可以知道,训练样本和特征属性的划分对于贝叶斯分类是十分重要的!这将决定整个贝叶斯分类器计算结果的准确性

总结一下之前的例子中,贝叶斯分类的处理过程

朴素贝叶斯分类的正式定义如下:

1、设为一个待分类项,而每个a为x的一个特征属性。

2、有类别集合

3、计算

4、如果,则

那么现在的关键就是如何计算第3步中的各个条件概率。

1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。

2、统计得到在各类别下各个特征属性的条件概率估计。即

3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

根据上述分析,朴素贝叶斯分类的流程可以由下图表示:

可以看到,整个朴素贝叶斯分类分为三个阶段:

第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。

第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

训练完毕之后的贝叶斯分类器就可以处理我们交给他的任何数据,并根据训练结果将其分类

以上有些段落摘选自算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

作者写的比较有才华也比较深奥,建议去看看,本文仅作笔记之用

时间: 2024-08-05 00:10:40

mahou之朴素贝叶斯算法思想的相关文章

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

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

初识分类算法(3)-----朴素贝叶斯算法

1. 例子引入:如上篇的play or not 例子. 未知分类的样本:D:<A=sunny, B=cool, C=high ,D=strong>,  是 or 否? 我们要判断该样本的分类,即比较该样本属于是的概率大还是否的概率大 P(是/否|A=sunny, B=cool, C=high ,D=strong) P(是|A=sunny, B=cool, C=high ,D=strong)=P(是,(A=sunny, B=cool, C=high ,D=strong))/P(A=sunny,

朴素贝叶斯算法原理及实现

朴素贝叶斯算法简单高效,在处理分类问题上,是应该首先考虑的方法之一. 1.准备知识 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类. 这个定理解决了现实生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A).这里先解释什么是条件概率: 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率.其基本求解公式为:. 下面不加证明地直接给出贝叶斯定理: 2.朴素贝叶斯分类 2.1

朴素贝叶斯算法 &amp; 应用实例

转载请注明出处:http://www.cnblogs.com/marc01in/p/4775440.html 引 和师弟师妹聊天时经常提及,若有志于从事数据挖掘.机器学习方面的工作,在大学阶段就要把基础知识都带上. 机器学习在大数据浪潮中逐渐展示她的魅力,其实<概率论>.<微积分>.<线性代数>.<运筹学>.<信息论>等几门课程算是前置课程,当然要转化为工程应用的话,编程技能也是需要的,而作为信息管理专业的同学,对于信息的理解.数据的敏感都是很好

斯坦福《机器学习》Lesson5感想———2、朴素贝叶斯算法

朴素贝叶斯算法与上篇中写到到生成学习算法的思想是一致的.它不需要像线性回归等算法一样去拟合各种假设的可能,只需要计算各种假设的概率,然后选择概率最高的那种假设分类类别.其中还添入了一个贝叶斯假定:在给定目标值y时属性值x之间相互独立.这样的分类算法被称为朴素贝叶斯分类器(Naive Bayes classifier)  . 1.朴素贝叶斯算法 在朴素贝叶斯算法的模型里,给定的训练集为, 可计算,.因为贝叶斯假定,可以计算出联合似然概率函数: 最大化联合似然概率函数可得到: 然后我们就可以对新的数

机器学习之朴素贝叶斯算法

1 贝叶斯定理的引入 概率论中的经典条件概率公式: 公式的理解为,P(X ,Y)= P(Y,X)<=> P(X | Y)P(Y)= P(Y | X)P (X),即 X 和 Y 同时发生的概率与 Y 和 X 同时发生的概率一样. 2 朴素贝叶斯定理 朴素贝叶斯的经典应用是对垃圾邮件的过滤,是对文本格式的数据进行处理,因此这里以此为背景讲解朴素贝叶斯定理.设D 是训练样本和相关联的类标号的集合,其中训练样本的属性集为          X { X1,X2, ... , Xn }, 共有n 个属性:

朴素贝叶斯算法

一.朴素贝叶斯分类算法简述 1.贝叶斯公式和全概率公式 举一个概率论中的例子.设某工厂有甲.乙.丙三个车间生产同一种产品,已知各车间的产量分别占全厂产量的25%.35%.40%,而且各车间的次品率依次为5%.4%.2%.现问: (1)生产的产品是次品的概率是多少? (2)如果是次品,该次品是甲工厂生产的概率是多少? 显然: 设一个产品属于甲.乙.丙工厂的概率分别为P(A) = 0.25, P(B) = 0.35, P(C) = 0.4.如果用no 表示次品,则有p(no|A) = 0.05, p

机器学习回顾篇(5):朴素贝叶斯算法

1 引言 说到朴素贝叶斯算法,很自然地就会想到贝叶斯概率公式,这是我们在高中的时候就学过的只是,没错,这也真是朴素贝叶斯算法的核心,今天我们也从贝叶斯概率公式开始,全面撸一撸朴素贝叶斯算法. 2 贝叶斯概率公式 2.1 联合概率与全概率公式 定义1:完备事件组 ${A_1} \cup {A_2} \cup \cdots \cup {A_n} = \Omega $,且${A_i} \cap {A_j} = \emptyset ,1 \le i \ne j \le n$,则称${A_1},{A_2}

统计学习方法 -&gt; 朴素贝叶斯算法

需要知道的是在什么时候可以用朴素贝叶斯算法:需要保证特征条件独立. 主要过程是学习输入和输出的联合概率分布. 预测的时候,就可以根据输入获得对打后验概率对应的输出y. 先验概率:已知输出,求输入.后验概率相反. 简单来说朴素贝叶斯算法,就是在对样本进行学习之后,到了需要做决策的时候,给定x,给出最大概率的y.这个本质上就是一个典型的后验概率模型.不过在该模型的算法推到上,还用到了先验概率的计算.但注意:最终朴素贝叶斯就是一种后验概率模型求P(y|x). 后验概率模型有一个好处,相当于期望风险最小