机器学习知识总结 —— 19.朴素贝叶斯网络

news/2025/3/31 22:01:12/

文章目录

  • 贝叶斯概率简述
  • 朴素贝叶斯
    • 训练过程
    • 预测过程
    • 简单的说

贝叶斯概率简述

在我写过的关于统计学相关文章 《概率论基础 —— 2. 条件概率、全概率、贝叶斯概率公式》 提到过一个很重要的概率公式—— 贝叶斯公式。其基本形式如下:

P(xi∣Y)=P(xi)P(Y∣xi)P(Y)P(x_i | Y) = \frac{P(x_i) P(Y | x_i)}{P(Y)} P(xiY)=P(Y)P(xi)P(Yxi)

这里的 P(Y)P(Y)P(Y) 表示事件 YYY 发生的全概率,P(xi)P(x_i)P(xi) 事件 xix_ixi 发生的概率,以及当 YYY 发生时的条件概率 P(Y∣xi)P(Y | x_i)P(Yxi)

为了方便理解这个公式的概念,现在我们引入一个例子。假设某工厂有一条产品线,然后该产品线分别在该工厂的两个车间,或者两个生产线进行生产。由于车间的建设时间,以及车间生产线建设时间的不同,以及可能不同的安装工人对生产线的调试方法的不同,车间A和车间B都有不同程度的次品概率。

也就说我们可以用下表进行表示:

车间产量占比良品率次品率
A45%97%3%
B55%95%5%

贝叶斯公式研究的问题就是,当我们拿到了一件次品,它是车间A生产的概率和车间B生产的概率分别是多少

显然,你不能简单的用 3 /(3+5)来表示车间产自A次品的概率,所以我们对这类问题要使用一种全新的经验模型来评估这类事件的概率。

这就是贝叶斯概率模型。为了求解上面这个问题,首先我们要得到所有概率事件的全概率,因此有:

P(A)=∑P(A∣B)⋅P(B)P(A)=\sum P(A | B) \cdot P(B) P(A)=P(AB)P(B)

其中,A和B是随机事件,P(A|B) 表示B发生条件下A发生的概率,P(B)表示B发生的概率。其中 P(A|B) 又是条件概率,其公式表示为:

p(A∣B)=P(AB)P(B)p(A|B) = \frac{P(AB)}{P(B)} p(AB)=P(B)P(AB)

这里,P(AB)是事件A和事件B同时发生的概率。可以理解为在B发生的条件下,A发生的概率,又称为B条件下A发生的概率,因此相对以上这些知识点,我们可以获得当拿到一个次品时,它分别产自车间A的概率和车间B的概率为:

根据全概率公式,可以得到:

P(A|次品) = P(A and 次品) / P(次品)
P(B|次品) = P(B and 次品) / P(次品)

由于我们已知车间A和B的产量占比,因此可以得到:

P(次品) = P(A and 次品) + P(B and 次品)

所以,

P(A|次品) = P(A and 次品) / P(A and 次品) + P(B and 次品)
P(B|次品) = P(B and 次品) / P(A and 次品) + P(B and 次品)

P(A and 次品) = P(A) * P(次品|A) = 45% * 3% = 1.35%
P(B and 次品) = P(B) * P(次品|B) = 55% * 5% = 2.75%

P(A|次品) = 1.35 / (1.35 + 2.75) = 0.33
P(B|次品) = 2.75 / (1.35 + 2.75) = 0.67

因此,拿到一个次品时,它产自车间A的概率是33%,产自车间B的概率是67%。

显然,如果假设我们知道一个概率表的情况下,那么拿到某个样本时我们能很容易的通过贝叶斯模型计算出它可能的概率,因此在机器学习中,我们引入了一个新的分类神器,朴素贝叶斯。

朴素贝叶斯

朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的分类算法。朴素贝叶斯算法基于贝叶斯定理,假设各特征之间相互独立,进行分类。

训练过程

首先对训练数据进行预处理,计算每个特征在每个类别中的概率。根据特征的独立性假设,计算每个类别的先验概率。保存计算得到的概率。

预测过程

对于新的输入样本,计算它属于每个类别的概率。

根据每个类别的先验概率和特征在类别中的概率计算出每个类别的后验概率。将输入样本分类到后验概率最大的类别中。

朴素贝叶斯算法的优点是简单易实现,时间复杂度低,可以处理大量数据,并且在线性分类器和贝叶斯分类器中表现较好。但是其假设特征之间相互独立,在实际应用中往往是不成立的,因此精度可能较低。

简单的说

看起来很复杂有没有,其实简单来说就是我们先设立一张表,然后把出现的数据类型A,B,C以及数据的属性a, b, c, d, e分别进行统计,然后得到每个样本,不同特征的概率,这就是先验概率。

类别出现概率特征a特征b特征c
A25%40%30%30%
B30%10%25%65%
C45%50%45%5%

然后对测试样本的特征进行分析,得到各特征出现的概率,然后再根据贝叶斯公式推算出它可能的分类。

这样说可能比较抽象,那么我们举垃圾邮件过滤机制为例,假设我们有数千封电子邮件作为样本,在我们完成对电子邮件样本分析和清洗后,得到类似一封邮件里如果出现类似重金求子,我有一笔存款与你分享等字样,那么大概率是垃圾邮件,而发现附件有Jpg文件但是文件大小有数十兆且没有具体说明的,有可能是木马邮件。

这样当你建立好这个过滤规则表后,并计算了先验概率。当你再次得到一封邮件时,你就可以对邮件内内容特征进行判断,给出它可能是有害邮件还是普通邮件的概率了。

程序示例,我准备放在下一章节里进行演示,有兴趣的朋友记得关注哟!


http://www.ppmy.cn/news/19821.html

相关文章

ISIS的3级别(level-1、level-2、level-1-2)4大类(IIH、LSP、CSNP、PSNP)9小类与邻接关系建立LSP交互过程介绍

2.2.0 ISIS 4种报文类型IIH、LSP、CSNP、PSNP、邻居建立过程、交互LSP过程 ISIS的3级别4大类9小类 ISIS拥有3种级别的路由器,分别是level-1、level-2、level-1-2。 不同级别之间进行交互的报文也是有所区别的,常规的ISIS报文分有4大类:IIH、…

年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款

大家好,我是小悟 今天是正月初五,天气超级好,也是迎财神的日子,祝大家顺风顺水,财源滚滚,钱兔似锦。 既然要发财,那自然少不了收款咯。如果你是一个商家,肯定是想收款的方式越方便越…

变量的了解

1、普通局部变量 -------------定义形式:在{}里面定义的 普通变量 叫做 普通局部变量 -------------作用范围:所在的 {} 复合语句之间有效 -------------生命周期:所在的 {} 复合语句之间有效 -------------存储区域:栈区 ---…

浅谈phar反序列化漏洞

目录 基础知识 前言 Phar基础 Phar文件结构 受影响的函数 漏洞实验 实验一 实验二 过滤绕过 补充 基础知识 前言 PHP反序列化常见的是使用unserilize()进行反序列化,除此之外还有其它的反序列化方法,不需要用到unserilize()。就是用到了本文…

HJ56、HJ58、JZ4、JZ6、JZ15、JZ17几道题

文章目录HJ56 完全数计算题目描述:具体实现:HJ58 输入n个整数,输出其中最小的k个题目描述:具体实现:JZ4 二维数组中的查找题目描述:具体实现:JZ6 从尾到头打印链表题目描述:具体实现…

【Java开发】Spring Cloud 08 :链路追踪

任何一个架构难免会出现bug,微服务相比于单体架构日志查询更为困难,因此spring cloud推出了Sleuth等组件的链路追踪技术来实现报错信息的定位及查询。项目源码:尹煜 / coupon-yinyu GitCode1 调用链追踪我们可以想象这样一个场景&#xff0c…

设计一个70W在线人数的弹幕系统

背景: 直播业务中增加弹幕系统,支持单房间百万用户同时在线。 问题分析: 带宽压力: 假如说每3秒促达用户一次,那么每次内容至少需要有15条才能做到视觉无卡顿。15条弹幕http包头的大小将超过3k,那么每秒…

如何好好说话-第12章 理清楚问题就是答案

生活中该不该积极主动与别人展开社交活动?有些时候社交活动并不开心,仅仅只是无聊的闲才。但他确实能拉拢人际关系,帮我们获得近身套路。而且有一种观点认为不善于社交的人是不成功的。注意以上说的这些都是偏见。当我们站在一个更高的维度认…