NBC模型【机器学习】

server/2025/1/15 18:45:37/

一、什么是贝叶斯算法?

贝叶斯方法根基于贝叶斯原理,运用概率统计手段对样本数据集实施分类。由于其牢固的数学支撑,贝叶斯分类算法的误判率是很低的。该方法的特点在于融合先验概率与后验概率,这样既克服了仅依赖先验概率可能带来的主观偏见,又规避了仅依据样本信息可能导致的过度拟合问题。在大型数据集的应用场景中,贝叶斯分类算法展现出卓越的准确性,且算法结构相对简洁明了。

二、 贝叶斯要解决的问题

正向概率: 假设袋子里有M个白球,N个黑球,伸手去摸出一个球,则摸到白球的概率是多少。
显然正向概率很好计算:概率为 M M + N \frac{M}{M+N} M+NM

逆向概率: 如果在不知道袋子里黑球和白球的比例的前提下,随机摸出几个球,统计这些球的颜色后,根据黑球和白球的个数对袋子里黑球和白球的比例做出推测。

三、公式

P ( H ∣ X ) = P ( X ∣ H ) ∗ P ( H ) P ( X ) P(H | X)= \frac{P(X | H)*P(H)}{P(X)} PHX=PXPXHPH


P ( H ): P(H): PH):是先验概率,P(H)是独立于X的
P ( X ): P(X): PX):样本数据被观察的概率
P ( X ∣ H ): P(X | H): PXH):代表假设H成立的情况下,观察到X的概率
P ( H ∣ X ): P(H | X): PHX):后验概率,或称条件X下H的后验概率
朴素贝叶斯分类就是假定一个属性值对给定类的影响独立于其他属性的值。

四、贝叶斯原理

问题:
  • 若某一学校中男生人数占60%,女生人数占40%

  • 男生总是短发,女生则一半长发一半短发

  • 正向概率:随机选取一个学生,则他(她)短发的概率和长发的概率是多少

  • 逆向概率:面前100米有一位同学在往前走,你只能看到他(她)的背影,因此你只能看到他(她)是长发还是短发,而无法确定他(她)的性别。你是否能够推断出他(她)是女生的概率是多大

  • 求:该学校中短发的同学有多少女生?

解:

假设学校中一共有Y个同学

  • 短发的(男生): Y ∗ P ( B o y ) ∗ P ( S h o r t h a i r ∣ B o y ) Y*P(Boy)*P(Short hair | Boy) YPBoyPShorthairBoy
  • 短发的(女生): Y ∗ P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) Y*P(Girl)*P(Short hair | Girl) YPGirlPShorthairGirl

短发学生的总数: Y ∗ P ( B o y ) ∗ P ( S h o r t h a i r ∣ B o y ) + Y ∗ P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) Y*P(Boy)*P(Short hair | Boy)+Y*P(Girl)*P(Short hair | Girl) YPBoyPShorthairBoy+YPGirlPShorthairGirl

短发中女生的人数为 P ( S h o r t h a i r / G i r l ) / P ( S h o r t h a i r ) P(Short hair/Girl)/P(Short hair) PShorthair/Girl/PShorthair
即下面的公式:
P ( G i r l ∣ S h o r t h a i r ) = Y ∗ P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) Y ∗ P ( B o y ) ∗ P ( S h o r t h a i r ∣ B o y ) + Y ∗ P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) P(Girl | Short hair)=\frac{Y*P(Girl)*P(Short hair | Girl)}{ Y*P(Boy)*P(Short hair | Boy)+Y*P(Girl)*P(Short hair | Girl)} PGirlShorthair=YPBoyPShorthairBoy+YPGirlPShorthairGirlYPGirlPShorthairGirl

化简为: P ( G i r l ∣ S h o r t h a i r ) = P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) P ( B o y ) ∗ P ( S h o r t h a i r ∣ B o y ) + P ( G i r l ) ∗ P ( S h o r t h a i r ∣ G i r l ) P(Girl | Short hair)=\frac{P(Girl)*P(Short hair | Girl)}{P(Boy)*P(Short hair | Boy)+P(Girl)*P(Short hair | Girl)} PGirlShorthair=PBoyPShorthairBoy+PGirlPShorthairGirlPGirlPShorthairGirl

这样就可以通过贝叶斯公式根据短发人数和男女比例逆向的推出短发女生的人数。

五、贝叶斯分类练习

在这里插入图片描述
希望分类的样本:
X(age=‘<30’,income=‘medium’,student=‘yes’,credit_rating=‘fair’)
我们想要判断这个数据属于哪一类,即是否购买电脑;buys_computer是yes还是no
思路:
计算每一个类的 P ( C i ∣ X ) = P ( X ∣ C i ) ∗ P ( C i ) P ( X ) P(Ci | X)=\frac{P(X | Ci)* P(Ci)}{P(X)} PCiX=PXPXCiPCi
Ci为每一个类别,X为希望分类的样本(这里C1代表购买电脑,C2代表没有购买电脑)。

  • 先验概率
    P(C1)=P(buys_computer=‘yes’)=9/14=0.222
    P(C2)=P(buys_computer=‘no’)=5/14=0.357

  • 条件概率
    P(age<30 | buys_computer=‘yes’)=2/9=0.222
    P(age<30 | buys_computer=‘no’)=3/5=0.600
    P(income=‘medium’ | buys_computer=‘yes’)=4/9=0.444
    P(income=‘medium’ | buys_computer=‘no’)=2/5=0.400
    P(student=‘yes’ | buys_computer=‘yes’)=6/9=0.677
    P(student=‘yes’ | buys_computer=‘no’)=1/5=0.200
    P(credit_rating=fair | buys_computer=‘yes’)=6/9=0.667
    P(credit_rating=fair | buys_computer=‘no’)=2/5=0.400

  • 比较P(C1 | X)=P(X | C1)*P(C1)/ P(X)和P(C2 | X)=P(X | C2)*P(C2)/ P(X)

  • 根据条件独立性假设得到:
    P(X | buys_computer=‘yes’)=P(age<30 | buys_computer=‘yes’)*P(income=‘medium’ | buys_computer=‘yes’)*P(student=‘yes’ | buys_computer=‘yes’)*P(credit_rating=fair | buys_computer=‘yes’)=0.222*0.444*0.667*0.667=0.044
    P(X | buys_computer=‘no’)=P(age<30 | buys_computer=‘no’)*P(income=‘medium’ | buys_computer=‘no’)*P(student=‘no’ | buys_computer=‘no’)*P(credit_rating=fair | buys_computer=‘no’)=0.600*0.400*0.200*03400=0.019
    P(X | buys_computer=‘yes’)*P(buys_computer=‘yes’)=0.044*0.643=0.028
    P(X | buys_computer=‘no’)*P(buys_computer=‘no’)=0.019*0.357=0.007
    故对于样本X,根据贝叶斯分类预测buys_computer=‘yes’


http://www.ppmy.cn/server/158221.html

相关文章

【微服务】面试 8、分布式任务调度

分布式任务调度简介 主流工具&#xff1a;在分布式任务调度技术中&#xff0c;XXL - Job 是目前较为主流的工具。应用场景&#xff1a;在 Java 后台项目中&#xff0c;任务调度技术应用广泛。以 XXL - Job 为例&#xff0c;它主要解决了以下四个常见问题&#xff1a; 集群任务…

WPF中如何在MVVM模式下跨线程更新UI

WPF中如何在MVVM模式下跨线程更新UI 在WPF应用程序中&#xff0c;使用MVVM&#xff08;Model-View-ViewModel&#xff09;模式是常见的开发实践。通过MVVM模式&#xff0c;我们能够将UI界面与业务逻辑解耦&#xff0c;达到更高的可维护性和扩展性。然而&#xff0c;WPF应用程序…

Java(五十)java-IO流-缓冲流(BufferedInputStream和BufferedOutputStream)

接下来我们学习一下java缓冲流中的读取和写入类BufferedInputStream&#xff08;缓冲字节输入流&#xff09;和BufferedOutputStream&#xff08;缓冲字节输出流&#xff09;类&#xff0c;这个两个类的使用方法和IO流中的FileOutputStream和FileInputStream类是差不多的。但是…

java 查询树结构数据,无限层级树结构通用方法

1、数据库表数据 2、controller层TestTree简单测试 RestController RequestMapping("/test") public class testTreeController {Autowiredprivate TestTreeService testTreeService;GetMapping("/list")public List<TestTree> List(TestTree tree)…

WPF系列八:图形控件Path

简介 Path控件支持一种称为路径迷你语言&#xff08;Path Mini-Language&#xff09;的紧凑字符串格式&#xff0c;用于描述复杂的几何图形。这种语言通过一系列命令字母和坐标来定义路径上的点和线段&#xff0c;最终绘制出想要的图形。 绘制任意形状&#xff1a;可以用来绘…

RPC调用初识

什么是RPC远程调用&#xff1f; 远程调用会遇到的问题&#xff1a; 1.call id 的映射 2.序列化和反序列化 3.网络传输 为什么一个函数&#xff0c;要放在另一台服务器上面&#xff0c;在本地跑不是更好吗&#xff1f; 当电商系统&#xff0c;有一段逻辑是扣减库存了&#x…

上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天探底回升&#xff0c;沪指盘中跌超1.6%&#xff0c;创业板指一度跌逾3%&#xff0c;午后集体拉升翻红…

爬虫基础之爬取歌曲宝歌曲批量下载

声明&#xff1a;本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…