03 朴素贝叶斯(NBM)

2023-11-22 15:20
文章标签 03 贝叶斯 朴素 nbm

本文主要是介绍03 朴素贝叶斯(NBM),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

朴素贝叶斯(Naive Bayesian Model)

1、定义:

贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。

 

贝叶斯法事概率论你框架下实施决策的基本方法,对分类任务来说,在所有相关概率都已知的情况下,如何运用这些概率来推测,分类

 

朴素贝叶斯最核心的部分是贝叶斯法则,而贝叶斯法则的基石是条件概率

 

条件概率公式

A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概为:

由条件概率可以推断出贝叶斯公式

换个形象的表达形式,如下:

我们最终求的p(类别|特征)即可!

 

我们把P(A)称为"先验概率",即在B事件发生之前,我们对A事件概率的一个判断。P(A|B)称为"后验概率",即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数",这是一个调整因子,使得预估概率更接近真实概率。

 

所以,条件概率可以理解成下面的式子:后验概率 = 先验概率 调整因子

 

这就是贝叶斯推断的含义。我们先预估一个"先验概率"P(A),然后加入实验结果B如果实验增强了"先验概率",我们就可以得到更接近事实的"后验概率"。

1、"可能性函数"P(B|A)/P(B)>1,"先验概率"被增强,事件A的发生的可能性变大

2、"可能性函数"P(B|A)/P(B)=1,意味着B事件无助于判断事件A的可能性;

3、"可能性函数"P(B|A)/P(B)<1,意味着"先验概率"被削弱,事件A的可能性变小。

 

 

例题分析

下面我先给出例子问题。

给定数据如下:

 

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

 

这是一个典型的分类问题,转为数学问题就是比较

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

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

的概率,谁的概率大,我就能给出嫁或者不嫁的答案!

 

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

 

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

 

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

 

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

 

p(嫁)=?

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

 

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

 

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

 

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

 

我们把所有已知的概率带入公式,就可以得出

 

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


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

 

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

 

得出不嫁的结论

 

 

2、贝叶斯 ==》 朴素贝叶斯

 

由概率论的知识我们可以知道,这个等式成立是有条件的,这个条件就是特征之间相互独立。(然而实际当中,特征值之间往往不是相互独立的)

 

这就是朴素贝叶斯分类有朴素一词的来源,

朴素贝叶斯算法 = 贝叶斯算法 + 各个特征之间相互独立(限定条件)

这一假设使得贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

 

 

=================================

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

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

 

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

 

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

 

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

 

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

================================

 

3贝叶斯网络

朴素贝叶斯算法在计算概率值上是假设各个特征是相互独立的。贝叶斯网络则将各个特征之间的关联考虑进去。

 贝叶斯网络,又称信念网络,或有向无环图模型,是一种概率图模型。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。 

    贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。

 

=================================

贝叶斯网络概率的计算

贝叶斯网络概率的计算很简单,是从联合概率分布公式中变换所得,下面是联合概率分布公式:

 

而在贝叶斯网络中,由于存在前述的关系存在,该公式就被简化为了如下:

 

其中Parent(xi),表示的是xi的前驱结点,如果还不理解,可以对照我后面的代码,自行调试分析。

=================================

 

 

 

3、优缺点

优点

§ 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。

§ 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练;

§ 对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点

§ 需要计算先验概率;

§ 分类决策存在错误率;

§ 对输入数据的表达形式很敏感。

 

 

4、应用场景

对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类

§ 中文分词领域

§ 统计机器翻译

§ 多用于文本分类,

§ 垃圾邮件过滤

§ 拼写检查/纠正器的文章

§ 情感分析

§ 消费者分类

 

 

 

 ===彩蛋===

=================================

P(我们猜测他想输入的单词 | 他实际输入的单词)

这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入: thew ,那么他到底是想输入 the ,还是想输入 thaw ?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为 h1 h2 .. ( h 代表 hypothesis),它们都属于一个有限且离散的猜测空间 H (单词总共就那么多而已),将用户实际输入的单词记为 D ( D 代表 Data ,即观测数据),

=================================

 

这篇关于03 朴素贝叶斯(NBM)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/411079

相关文章

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

Vue day-03

目录 Vue常用特性 一.响应更新 1. 1 v-for更新监测 1.2 v-for就地更新 1.3 什么是虚拟DOM 1.4 diff算法更新虚拟DOM 总结:key值的作用和注意点: 二.过滤器 2.1 vue过滤器-定义使用 2.2 vue过滤器-传参和多过滤器 三. 计算属性(computed) 3.1 计算属性-定义使用 3.2 计算属性-缓存 3.3 计算属

【SpringMVC学习03】-SpringMVC的配置文件详解

在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。其实真正需要程序员开发的就两大块:一个是Handler,一个是jsp。 在springMVC的入门程序中,SpringMVC的核心配置文件——springmvc.xml为: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:

浙大数据结构——03-树1 树的同构

这道题我依然采用STL库的map,从而大幅减少了代码量 简单说一下思路,两棵树是否同构,只需比较俩树字母相同的结点是否同构,即是否左==左,右==右或者左==右,右==左。 1、条件准备 atree和btree是存两个数结点字母,第几个就存输入的第几个结点的字母。 map通过结点的字母作为键,从而找到两个子节点的信息 都要用char类型 #include <iostream>#inc

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

python+selenium2轻量级框架设计-03读取配置文件

任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里介绍读取ini文件。 以读取url和浏览器作为例子 #浏览器引擎类import configparser,time,osfrom selenium import webdriverfrom framework.logger import Loggerlogger = Logger(logger='

python+selenium2学习笔记unittest-03断言

断言的方法网上归纳的很多主要有以下这些 断言语法解释assertEqual(a, b) 判断a==bassertNotEqual(a, b)判断a!=bassertTrue(x)bool(x) is TrueassertFalse(x)bool(x) is FalseassertIs(a, b)a is bassertIsNot(a, b) a is not bassertIsNone(x) x

C++入门(03)萌新问题多(一)(未完待续)

文章目录 1. 一闪而过使用system("pause")使用cin.get() 1. 一闪而过 .exe 在用户计算机上运行后“一闪而过”,是因为控制台程序没有专门的用户图形界面,程序执行完所有代码后默认完成任务自动关闭 使用system(“pause”) 在程序的结尾处加入 system(“pause”),程序在执行完毕后等待用户按任意键继续。这是最简单的方法。 使