朴素贝叶斯分类算法

朴素贝叶斯(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 Bayesian classification)

致谢:德川,皓宇,继豪,施琦


原文地址:https://mp.weixin.qq.com/s?__biz=MzI4MDYzNzg4Mw==&mid=2247483819&idx=1&sn=7f1859c0a00248a4c658fa65f846f341&chksm=ebb4397fdcc3b06933816770b928355eb9119c4c80a1148b92a42dc3c08de5098fd6f278e61e#rd

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

相关推荐

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

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

wepon的专栏 8万+

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

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

Dong_ZH的博客 1万+

朴素贝叶斯分类算法(Naive Bayesian classification)

朴素贝叶斯分类算法(Naive Bayesian classification) PS:本文在讲解的时候会用通俗的例子来讲解 本文我们将学习到: (1)什么是朴素贝叶斯? (2)先验概率和条件概率是如何证明的? (3)文本分类的多项式模型和伯努利模型(附加例子说明) (4)垃圾邮件的分类及代码的演示(暂缺以后会补上) (1)什么

向往未来 1万+

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

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

hu_wei123的博客 9583

CGAL-5.6的安装与编译(Win10+vs2022+CGAL-5.6+Boost1.82.0)

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。CGAL5.6。

baidu_34931359的博客 3902

用Simulink对Carsim车辆进行档位控制

用Simulink对Carsim车辆进行档位控制一、carsim中的档位设置为开环控制二、在Constant目录下面选取一个选项并重新命名为constant :0 Gear三、双击进去设置常量为 0四、输入和输出IO通道五、验证 :输入 为 3 档 ----- 输出 为 3!六、参考 一、carsim中的档位设置为开环控制 二、在Constant目录下面选取一个选项并重新命名为constant :0 Gear 三、双击进去设置常量为 0 四、输入和输出IO通道 五、验证 :输入 为 3 档 -

qq_42027654的博客 2602

算法——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

朴素贝叶斯分类,算法讲解,实例解析

u014741673的博客 5127

零代码实战:基于Coze平台打造测试用例生成AI助手

本文详细介绍了如何利用Coze平台零代码打造测试用例生成AI助手,通过智能体和工作流配置,实现需求文档自动解析与结构化测试用例生成。该方案显著提升测试效率,特别适合敏捷开发中频繁变更的需求场景,帮助测试工程师快速应对挑战。

weixin_42526015的博客 209

分类算法之朴素贝叶斯分类(Naive Bayesian classification)

Eric Zhanghttp://zhan.renren.com/mathbeauty?gid=3602888498026292568&from=PubNewFeed&ref=hotnewsfeed&sfet=3731&fin=12&ff_id= 0、写在前面的话       我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法

博客 7637

使用STC15F104W产生PWM脉冲

最近的小项目中使用到了STC15F104W产生PWM脉冲

yeats1989的专栏 1万+

用ESP32-S3和USB摄像头DIY一个无线图传监控(附完整代码和接线图)

本文详细介绍了如何利用ESP32-S3开发板和USB摄像头打造一套高性价比的无线图传监控系统。从硬件选型、接线图到代码实现,提供了完整的DIY方案,特别适合家庭监控、宠物看护等场景。通过优化WiFi传输和双核任务分配,实现了稳定的视频流传输,整套方案成本控制在200元以内。

weixin_33701251的博客 519

关于朴素贝叶斯分类算法(Naive Bayesian classification)

一、简介 贝叶斯分类是一类分类算法的总称,算法以贝叶斯定理为基础,所以称为贝叶斯分类。本文将首先介绍分类问题,对分类问题进行一个正式的定义。然后,介绍贝叶斯分类算法的基础——贝叶斯定理。最后,通过实例讨论贝叶斯分类中最简单的一种:朴素贝叶斯分类。 二、分类问题介绍 当你看到一个陌生人,你的脑子下意识判断TA是男是女;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱、那边有个非主流”之类的话,其实这就是一种分类操作。 从数学角度来说,分类问题可做如下定义: 已知集...

qq_42614692的博客 1580

「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

软件成分分析(Software Composition Analysis,SCA)是一种用于识别和分析软件内部组件及其关系的技术,旨在帮助开发人员更好地了解和管理其软件的构建过程,同时可帮助安全人员揭秘软件内部结构的神秘面纱。SCA技术的发展与软件行业的快速发展密不可分,下面将介绍SCA的发展背景、技术原理以及当前主流SCA工具。

所有成功的背后,都是痛苦的坚持,所有的痛苦,都是傻瓜般的不放弃! 5630

算法之朴素贝叶斯分类(Naive Bayesian classification

一、摘要          贝叶斯分类是一类分类算法的总称,这类算法以贝叶斯定理为基础,所以统称为贝叶斯分类。 二、分类问题综述         已知集合:和,确定映射规则,使得任意有且仅有一个使得成立。那么,C叫做类别集合,其中每一个元素是一个类别;I叫做项集合,其中每一个元素是待分类项;f是分类器。分类算法的任务就是构造分类器。         这里要着重强调,分类问题往往采用

五仁月饼哭了的博客 784

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

Python全栈项目--手机语音远程控制智能家居系统(含嵌入式控制)

摘要:本项目实现了一个基于Python全栈的智能家居语音控制系统,支持手机端语音指令控制家居设备。系统采用FastAPI后端+Vue3前端的架构,集成Web Speech API实现语音识别,通过嵌入式设备(如ESP32)执行硬件控制。功能包括用户认证、设备管理、场景联动、指令解析和日志记录,支持HTTP轮询和直推两种命令下发模式。项目涵盖物联网全链路开发,适用于课程设计或毕业设计原型开发。

exlink2012的专栏 878

朴素贝叶斯分类算法简单实例

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

signal___的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

朴素贝叶斯分类算法(Naive Bayesian classification)

机器学习(分类算法) and 十大算法:朴素贝叶斯分类 0、写在前面的话       我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。       一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣。最近面临毕业

Thinkgamer博客 8228

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

朴素贝叶斯分类算法——商品多分类

朴素贝叶斯的思想是这样的: 如果一个事物在一些属性条件发生的情况下,事物属于A的概率>属于B的概率,则判定事物属于A 大众点评、淘宝等电商上都会有大量的商品,比如: ID Title CategoryID CategoryName 8986 寇老西 纯酿 苹果醋 果汁 饮料 310ml * 6 罐 7 饮料 饮品 17428 福临门 金典 东北 米 ...

qq_37797234的博客 3377

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

FROM: http://www.cnblogs.com/leoo2sk/archive/2010/09/17/1829190.html 0、写在前面的话       我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。       一直想写关于算法的博文,

凌风探梅的专栏 1158

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)(转)

0、写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣。最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的...

demo1986的博客 141
上一篇: 循环神经网络(RNN)原理通俗解释
下一篇: 随机游走模型(Random Surfer Model)
HFKuAng
博客等级 码龄11年 70粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值