朴素贝叶斯算法求解

朴素贝叶斯(Naive Bayes)详解 贝叶斯决策论、朴素贝叶斯原理与算法实现、具体应用。 阅读详情
贝叶斯分类是一类分类 算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。 而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。


1   分类问题综述


 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。


既然是贝叶斯分类算法,那么分类的数学描述又是什么呢?


从数学角度来说,分类问题可做如下定义:已知集合和,确定映射规则y = f(x),使得任意有且仅有一个,使得成立。


其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。


分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。


本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重要知识点进行讲解。


2   朴素贝叶斯分类


那么既然是朴素贝叶斯分类算法,它的核心算法又是什么呢?

是下面这个贝叶斯公式:




换个表达形式就会明朗很多,如下:




我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。


3   例题分析


下面我先给出例子问题。


给定数据如下:




现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?


这是一个典型的分类问题,转为数学问题就是比较p(嫁|(不帅、性格不好、身高矮、不上进))与p(不嫁|(不帅、性格不好、身高矮、不上进))的概率,谁的概率大,我就能给出嫁或者不嫁的答案!

这里我们联系到朴素贝叶斯公式:




我们需要求p(嫁|(不帅、性格不好、身高矮、不上进),这是我们不知道的,但是通过朴素贝叶斯公式可以转化为好求的三个量.


p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)(至于为什么能求,后面会讲,那么就太好了,将待求的量转化为其它可求的值,这就相当于解决了我们的问题!)


4   朴素贝叶斯算法的朴素一词解释


那么这三个量是如何求得?


是根据已知训练数据统计得来,下面详细给出该例子的求解过程。

回忆一下我们要求的公式如下:




那么我只要求得p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)即可,好的,下面我分别求出这几个概率,最后一比,就得到最终结果。


p(不帅、性格不好、身高矮、不上进|嫁) = p(不帅|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上进|嫁),那么我就要分别统计后面几个概率,也就得到了左边的概率!


等等,为什么这个成立呢?学过概率论的同学可能有感觉了,这个等式成立的条件需要特征之间相互独立吧!


对的!这也就是为什么朴素贝叶斯分类有朴素一词的来源,朴素贝叶斯算法是假设各个特征之间相互独立,那么这个等式就成立了!


但是为什么需要假设特征之间相互独立呢?



1、我们这么想,假如没有这个假设,那么我们对右边这些概率的估计其实是不可做的,这么说,我们这个例子有4个特征,其中帅包括{帅,不帅},性格包括{不好,好,爆好},身高包括{高,矮,中},上进包括{不上进,上进},那么四个特征的联合概率分布总共是4维空间,总个数为2*3*3*2=36个。


36个,计算机扫描统计还可以,但是现实生活中,往往有非常多的特征,每一个特征的取值也是非常之多,那么通过统计来估计后面概率的值,变得几乎不可做,这也是为什么需要假设特征之间独立的原因。


2、假如我们没有假设特征之间相互独立,那么我们统计的时候,就需要在整个特征空间中去找,比如统计p(不帅、性格不好、身高矮、不上进|嫁),


我们就需要在嫁的条件下,去找四种特征全满足分别是不帅,性格不好,身高矮,不上进的人的个数,这样的话,由于数据的稀疏性,很容易统计到0的情况。 这样是不合适的。


根据上面俩个原因,朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是一个较强的假设,朴素贝叶斯也由此得名!这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。


好的,上面我解释了为什么可以拆成分开连乘形式。那么下面我们就开始求解!


我们将上面公式整理一下如下:




下面我将一个一个的进行统计计算(在数据量很大的时候,根据中心极限定理,频率是等于概率的,这里只是一个例子,所以我就进行统计即可)。


p(嫁)=?

首先我们整理训练数据中,嫁的样本数如下:



则 p(嫁) = 6/12(总样本数) = 1/2


p(不帅|嫁)=?统计满足样本数如下:



则p(不帅|嫁) = 3/6 = 1/2 在嫁的条件下,看不帅有多少


p(性格不好|嫁)= ?统计满足样本数如下:



则p(性格不好|嫁)= 1/6


p(矮|嫁) = ?统计满足样本数如下:



则p(矮|嫁) = 1/6


p(不上进|嫁) = ?统计满足样本数如下:



则p(不上进|嫁) = 1/6


下面开始求分母,p(不帅),p(性格不好),p(矮),p(不上进)

统计样本如下:




不帅统计如上红色所示,占4个,那么p(不帅) = 4/12 = 1/3




性格不好统计如上红色所示,占4个,那么p(性格不好) = 4/12 = 1/3




身高矮统计如上红色所示,占7个,那么p(身高矮) = 7/12




不上进统计如上红色所示,占4个,那么p(不上进) = 4/12 = 1/3


到这里,要求p(不帅、性格不好、身高矮、不上进|嫁)的所需项全部求出来了,下面我带入进去即可,



= (1/2*1/6*1/6*1/6*1/2)/(1/3*1/3*7/12*1/3)


下面我们根据同样的方法来求p(不嫁|不帅,性格不好,身高矮,不上进),完全一样的做法,为了方便理解,我这里也走一遍帮助理解。首先公式如下:




下面我也一个一个来进行统计计算,这里与上面公式中,分母是一样的,于是我们分母不需要重新统计计算!


p(不嫁)=?根据统计计算如下(红色为满足条件):




则p(不嫁)=6/12 = 1/2


p(不帅|不嫁) = ?统计满足条件的样本如下(红色为满足条件):




则p(不帅|不嫁) = 1/6


p(性格不好|不嫁) = ?据统计计算如下(红色为满足条件):



则p(性格不好|不嫁) =3/6 = 1/2


p(矮|不嫁) = ?据统计计算如下(红色为满足条件):



则p(矮|不嫁) = 6/6 = 1


p(不上进|不嫁) = ?据统计计算如下(红色为满足条件):


则p(不上进|不嫁) = 3/6 = 1/2


那么根据公式:


p (不嫁|不帅、性格不好、身高矮、不上进) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)

很显然(1/6*1/2*1*1/2) > (1/2*1/6*1/6*1/6*1/2)


于是有p (不嫁|不帅、性格不好、身高矮、不上进)>p (嫁|不帅、性格不好、身高矮、不上进)


所以我们根据朴素贝叶斯算法可以给这个女生答案,是不嫁!!!!


5   朴素贝叶斯分类的优缺点


优点:

(1) 算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化医学即可!)

(2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)


缺点:


理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。


而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。


朴素贝叶斯算法 朴素贝叶斯优缺点:优点:在数据较少的情况下仍然有效,可以处理多类别问题缺点:对于输入数据的准备方式较为敏感,由于朴素贝叶斯的“特征条件独立”特点,所以会带来一些准确率上的损失。 阅读详情

相关推荐

朴素贝叶斯理论推导与三种常见模型

朴素贝叶斯(Naive Bayes)是一种简单的分类算法,它的经典应用案例为人所熟知:文本分类(如垃圾邮件过滤)。很多教材都从这些案例出发,本文就不重复这些内容了,而把重点放在理论推导(其实很浅显,别被“理论”吓到),三种常用模型及其编码实现(Python)。如果你对理论推导过程不感兴趣,可以直接逃到三种常用模型及编码实现部分,但我建议你还是看看理论基础部分。另外,本文的所有代码都可以从我的gith

wepon的专栏 8万+

【机器学习】朴素贝叶斯算法

朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型。经典应用案例包括:文本分类、垃圾邮件过滤等。

Dong_ZH的博客 1万+

朴素贝叶斯

目录一、概率知识 一、概率知识 1.朴素贝叶斯中,朴素指事件相互独立,此为前提 2.概率:事件A发生的概率表示为: P(A) 3.条件概率: 一定条件下事件发生的概率,如P(A|B)表示在事件B发生的条件下,A发生的概率 4.联合概率: 事件A和事件B同时发生的概率表示为: P(AB) 比如,一个袋子里有3个红球,2个白球,随机抽一个球为红球的概率 P(抽到红球)=3/5,不放回抽,第一次已经抽到红球,则第二次抽到红球的概率 P(第二次抽到红球|第一次抽到红球)=2/4,第一次抽到红球且第二次抽到红球的

青青_河边草的博客 282

机器学习算法(7)—— 朴素贝叶斯算法

朴素贝叶斯是一种分类算法,经常被用于文本分类,它的输出结果是某个样本属于某个类别的概率。(1)优点朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率对缺失数据不太敏感,算法也比较简单,常用于文本分类分类准确度高,速度快(2)缺点由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好需要计算先验概率,而先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳;

hu_wei123的博客 9584

朴素贝叶斯例题记录

先举个例子(摘自统计学习方法):                                                           极大似然估计求解: 贝叶斯估计求解(λ = 1时,称为拉普拉斯平滑;λ = 0时,称为极大似然估计): 书中对这两个方法的说明:

haharen110的博客 1万+

【液晶专题】从外挂到In-Cell/ On-Cell/ OGS再也不会傻傻分不清楚了

触控技术经历了从外挂式到内嵌式的革新,主要方案包括外挂式(Out-Cell)、OGS、On-Cell和In-Cell。

一点硬件 1253

46 | 概率统计:如何利用朴素贝叶斯算法过滤垃圾短信?

Wn 同时出现在一条短信中)这一部分的值了,因为计算 p1 与 p2 的时候,都会包含这个概率值的计算,所以在求解 p1 和 p2 倍数(p1/p2)的时候,我们也就不需要这个值。还有一种时间换空间的方法,我们可以把黑名单存储在服务器端上,把过滤和拦截的核心工作,交给服务器端来做。,Wn 这 n 个单词的短信,是垃圾短信和非垃圾短信的概率。P(W1,W2,W3,…,Wn 同时出现在一条短信中 | 短信是垃圾短信)概率求解。样本中垃圾短信的个数除以总样本短信个数,就是短信是垃圾短信的概率。

Balance 647

音视频从入门到精通——指数哥伦布码原理

在计算机中,一般数字的编码都为二进制,但是由于以相等长度来记录不同数字,因此会出现很多的。

mirana的专栏 1383

贝叶斯、朴素贝叶斯的一些思考

动机概述 最近在学习贝叶斯和朴素贝叶斯,两者是有一定区别的,网上有很多介绍的文章可以自行搜索。可是我不认为自己已经完全理解,因此暂时还不敢进行相关的总结。 本文的动机是希望通过一个具体的案例,带有准确的数字的案例,按照自己所理解的贝叶斯和朴素贝叶斯的方法进行分析,希望有分析错误的地方能够得到大家的纠正 数据介绍 首先,这是我模拟生成的两组数据,正常邮件100封,垃圾邮件100封,我们假设影响一封邮...

weixin_37340613的博客 351

YOLOv8傻瓜式教程

YOLOv8傻瓜式教程,附带详细参数配置。

Father_of_Python的博客 1万+

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

931

Java实现朴素贝叶斯算法

算法原理 朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。 概率计算公式 **P(A | BC) = P(A)P(B | A)P(C | A) / P(BC) 对给定的一组特征进行分类 本文的预测问题是“患者是否感冒” 将以往...

虚言假面的博客 4434

软件测试--用例篇(测试用例的好处、测试用例的七种设计方法、测试用例的粒度、测试用例的评价)

作为软件测试工程师,最主要的工作就是:编写测试用例,那么为什么要编写测试用例?它有什么好处?如何编写测试用例?测试用例写简单好还是复杂好?如何评价测试用例的质量? 天呐撸!能说不会吗?! 作为倾向软件测试工程师的老铁们,还是一起来学习吧! 一、编写测试用例的好处 测试用例是测试者的依据 测试用例使得工作可重复,是自动化测试的基础 补充:自动化测试的前提条件是:功能比较稳定,页面...

cherrydreamsover的博客 3735

机器学习之朴素贝叶斯原理及python实现

pass

hongwei的博客 535

国密(3)- 预主密钥/主密钥计算和Finished消息的加解密

国密的ECC-SM3-SM4-CBC模式下的预主密钥和主密钥的生成过程介绍,以及Finished消息的加解密介绍

weixin_43408952的博客 6512

SRAM ECC原理与应用:从汉明码到高可靠嵌入式系统设计

在嵌入式系统与高可靠性计算领域,内存数据完整性是系统稳定运行的基石。软错误(Soft Error)由宇宙射线或芯片内部粒子引发,可能导致存储单元发生位翻转,进而引发程序跑飞或数据损坏。为应对这一物理层挑战,错误校验与纠正(ECC)技术应运而生,其核心原理基于扩展汉明码,通过增加校验位实现单错误纠正、双错误检测(SECDED)能力。这项技术通过硬件透明纠错,在提升系统可靠性的同时,几乎不影响访问性能。在汽车电子、工业控制及航空航天等对安全性要求极高的场景中,ECC已成为保障长期稳定运行的关键硬件机制。本文聚焦

weixin_28728265的博客 532

朴素贝叶斯分析

贝叶斯分类器讲解

Fo_Pluto的博客 672

【华为OD技术面试手撕真题】1、长度最小的子数组 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)(三种解法)

【华为OD面试手撕真题】长度最小的子数组,本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS),思路分析都非常详细, 实现最低的时间复杂度和高通过率,每个解题思路超过百字,内含各个编程语言的八股文面试题,欢迎大家订阅学习, 代码可以直接运行使用,全网限时最低价,持续更新

KJ.JK 1万+

朴素贝叶斯算法文本分类原理

序 本文主要简单研究一下朴素贝叶斯算法是如何对文本进行分类的。 贝叶斯算法 贝叶斯方法把计算“具有某特征的条件下属于某类”的概率转换成需要计算“属于某类的条件下具有某特征”的概率,属于有监督学习。 后验概率 = 先验概率 x 调整因子 复制代码这就是贝叶斯推断的含义。我们先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"。 公式 ...

weixin_34120274的博客 553

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

二维特征分类的基础_带你搞懂朴素贝叶斯分类算法

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。1 分类问题综述 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经...

weixin_39765209的博客 1194

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

机器学习之朴素贝叶斯模型

朴素贝叶斯模型的目标函数以及目标函数的求解

weixin_44940380的博客 1589

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学角度解析朴素贝叶斯算法

简介 朴素贝叶斯算法仍然是流行的十大挖掘算法之一,也是是文本分析领域最为常用的算法之一,该算法是有监督的学习算法,解决的是分类问题,如客户是否流失、是否值得投资、信用等级评定等多分类问题。该算法的优点在于简单易懂、学习效率高、在某些领域的分类问题中能够与决策树、神经网络相媲美。但由于该算法以自变量之间的独立(条件特征独立)性和连续变量的正态性假设为前提,就会导致算法精度在某种程度上受影响。 1. 预备数学知识 1.1 求极值问题 人工智能中札核心的数学环节是求出一个目标函数最小值或最大值。我们高中时学过的将

qq_40127118的博客 403

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

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

weixin_34323858的博客 94

《机器学习实战》— 基于概率论的分类方法:朴素贝叶斯

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。 1 分类问题综述 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生...

qq_38151401的博客 318
上一篇: Android开发之第二个activity
下一篇: Hyper-V虚拟机搭建
LittleToMickle
博客等级 码龄10年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值