Scikit-Learn朴素贝叶斯

news2024/9/19 9:39:54

Scikit-Learn朴素贝叶斯

    • 1、朴素贝叶斯
      • 1.1、贝叶斯分类
      • 1.2、贝叶斯定理
      • 1.3、贝叶斯定理的推导
      • 1.4、朴素贝叶斯及原理
      • 1.5、朴素贝叶斯的优缺点
    • 2、Scikit-Learn朴素贝叶斯
      • 2.1、Sklearn中的贝叶斯分类器
      • 2.2、Scikit-Learn朴素贝叶斯API
      • 2.3、Scikit-Learn朴素贝叶斯实践(新闻分类与预测)




1、朴素贝叶斯


贝叶斯分类法是基于贝叶斯定理的统计学分类方法。它通过预测一组给定样本属于一个特定类的概率来进行分类。贝叶斯分类在机器学习知识结构中的位置如下:

在这里插入图片描述

1.1、贝叶斯分类


贝叶斯分类的历史可以追溯到18世纪,当时英国统计学家托马斯·贝叶斯发展了贝叶斯定理,这个定理为统计决策提供了理论基础。不过,贝叶斯分类得到广泛实际应用是在20世纪80年代,当时计算机技术的进步使得大规模数据处理成为可能

在众多机器学习分类算法中,贝叶斯分类和其他绝大多数分类算法都不同

例如,KNN、逻辑回归、决策树等模型都是判别方法,也就是直接学习出输出Y和特征X之间的关系,即决策函数 Y Y Y= f ( X ) f(X) f(X)或决策函数 Y Y Y= P ( Y ∣ X ) P(Y|X) P(YX)

但是,贝叶斯是生成方法,它直接找出输出Y和特征X的联合分布 P ( X , Y ) P(X,Y) P(X,Y),进而通过 P ( Y ∣ X ) P(Y|X) P(YX)= P ( X , Y ) P ( X ) \frac{P(X,Y)}{P(X)} P(X)P(X,Y)计算得出结果判定

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯(Naive Bayes)分类是贝叶斯分类中最简单,也是常见的一种分类方法

朴素贝叶斯算法的核心思想是通过特征考察标签概率来预测分类,即对于给定的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别

例如,基于属性和概率原则挑选西瓜,根据经验,敲击声清脆说明西瓜还不够成熟,敲击声沉闷说明西瓜成熟度好,更甜更好吃。所以,坏瓜的敲击声是清脆的概率更大,好瓜的敲击声是沉闷的概率更大。当然这并不绝对——我们千挑万选的沉闷瓜也可能并没熟,这就是噪声了。当然,在实际生活中,除了敲击声,我们还有其他可能特征来帮助判断,例如色泽、根蒂、品类等

朴素贝叶斯把类似敲击声这样的特征概率化,构成一个西瓜的品质向量以及对应的好瓜/坏瓜标签,训练出一个标准的基于统计概率的好坏瓜模型,这些模型都是各个特征概率构成的。这样,在面对未知品质的西瓜时,我们迅速获取了特征,分别输入好瓜模型和坏瓜模型,得到两个概率值。如果坏瓜模型输出的概率值更大一些,那这个瓜很有可能就是个坏瓜

1.2、贝叶斯定理


贝叶斯定理(Bayes Theorem)也称贝叶斯公式,其中很重要的概念是先验概率、后验概率和条件概率

1.2.1、先验概率

先验概率是指事件发生前的预判概率。可以是基于历史数据的统计,可以由背景常识得出,也可以是人的主观观点给出。一般都是单独事件概率

例如,如果我们对西瓜的色泽、根蒂和纹理等特征一无所知,按照常理来说,好瓜的敲声是沉闷的概率更大,假设是60%,那么这个概率就被称为先验概率

1.2.2、后验概率

后验概率是指事件发生后的条件概率。后验概率是基于先验概率求得的反向条件概率。概率形式与条件概率相同

例如,我们了解到判断西瓜是否好瓜的一个指标是纹理。一般来说,纹理清晰的西瓜是好瓜的概率更大,假设是75%,如果把纹理清晰当作一种结果,然后去推测好瓜的概率,那么这个概率就被称为后验概率

1.2.3、条件概率

条件概率是指一个事件发生后另一个事件发生的概率。一般的形式为P(B|A),表示事件A已经发生的条件下,事件B发生的概率
P ( B ∣ A ) = P ( A B ) P ( A ) P(B|A)=\frac{P(AB)}{P(A)} P(BA)=P(A)P(AB)

1.2.4、贝叶斯公式

贝叶斯公式是基于假设的先验概率与给定假设下观察到不同样本数据的概率提供了一种计算后验概率的方法。朴素贝叶斯模型依托于贝叶斯公式
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

贝叶斯公式中:

  • P(A)是事件A的先验概率,一般都是人主观给定的。贝叶斯中的先验概率一般特指它
  • P(B)是事件B的先验概率,与类别标记无关,也称标准化常量,通常使用全概率公式计算得到
  • P(B|A)是条件概率,又称似然概率,一般通过历史数据统计得到
  • P(A|B)是后验概率,后验概率是我们求解的目标

由于P(B)与类别标记无关,因此估计P(A|B)的问题最后就被我们转化为基于训练数据集样本先验概率P(A)和条件概率P(B|A)的估计问题

贝叶斯公式揭示了事件A在事件B发生条件下的概率与事件B在事件A发生条件下的概率的关系

更多关于条件概率、全概率公式与贝叶斯公式的介绍详见文章:传送门

1.3、贝叶斯定理的推导


根据条件概率公式可得
P ( A B ) = P ( B ∣ A ) P ( A ) P(AB)=P(B|A)P(A) P(AB)=P(BA)P(A)

同理可得
P ( B A ) = P ( A ∣ B ) P ( B ) P(BA)=P(A|B)P(B) P(BA)=P(AB)P(B)

设事件A与事件B互相独立,即 P ( A B ) P(AB) P(AB)= P ( B A ) P(BA) P(BA),则有
P ( B ∣ A ) P ( A ) = P ( A ∣ B ) P ( B ) P(B|A)P(A)=P(A|B)P(B) P(BA)P(A)=P(AB)P(B)

由此可得贝叶斯公式
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

1.4、朴素贝叶斯及原理


基于贝叶斯定理的贝叶斯模型是一类简单常用的分类算法。在假设待分类项的各个属性相互独立的前提下,构造出来的分类算法就称为朴素的,即朴素贝叶斯算法

所谓朴素,就是假定所有输入事件之间相互独立。进行这个假设是因为独立事件间的概率计算更简单,当然,也更符合我们的实际生产生活

朴素贝叶斯模型的基本思想是,对于给定的待分类项 X { x 1 , x 2 , . . . , x n } X\{ {x_1,x_2,...,x_n}\} X{ x1,x2,...,xn},求解在此项出现的条件下各个类别 P ( y i ∣ X ) P(y_i|X)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1703604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRtos进阶——栈保存现场的几种场景

MCU架构 在认识栈的结构前,我们先来认识以下单片机的简单架构。在我们的CPU中有着很重要的一个模块——寄存器(R0-R15),其中R13,R14,R15的别称分别为SP栈顶指针、LR返回地址、PC当前指令地址。外部RAM是单片…

前端开发攻略---三种方法解决Vue3图片动态引入问题

目录 1、将图片放入public文件夹中 2、使用 /src/.... 路径开头 3、生成图片的完整URL地址&#xff08;推荐&#xff09; 1、将图片放入public文件夹中 使用图片&#xff1a;路径为 /public 开头 <template><div><img :src"/public/${flag ? 01 : 02}.jp…

JMeter 测试单节点与集群的并发异常率

一. JMeter 测试单节点与集群的并发异常率 下载地址&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 单个tomcat测试结果(2000个用户&#xff0c;每个用户访问100次) nginx集群负载均衡tomcat结果(2000个用户&#xff0c;每个用户访问100次)

【机器学习300问】101、1x1卷积有什么作用?

卷积神经网络最重要的操作就是卷积层的卷积操作&#xff0c;之前文章中介绍过&#xff0c;卷积核filter往往都是3x3或者5x5什么的&#xff0c;但有一种非常特殊的卷积——1x1卷积。他在CNN中扮演着非常重要的角色。 一、通道维度的降维/升维 这是1x1卷积最显著的作用之一。通过…

眼底项目经验

眼底项目经验 可解释性不足问题眼底项目有多牛逼可解释性不足解法数据、算力、算法都免费送不仅预测当下&#xff0c;还能预测未来和慢病管理整合&#xff0c;形成一个实时健康检测生态 可解释性不足问题 今天下午和腾讯眼底项目人员讨论, 他们不准备做全身性的多疾种, 因为深…

按尺寸筛选轮廓图中的轮廓

1.按短边筛选 原始轮廓图&#xff1a; import cv2 import numpy as np# 读取轮廓图 contour_image cv2.imread(..\\IMGS\\pp_edge.png, cv2.IMREAD_GRAYSCALE)# 使用cv2.findContours()函数获取所有轮廓 contours, _ cv2.findContours(contour_image, cv2.RETR_EXTERNAL, cv2…

使用 Python 编程语言进行供应链分析

前言 要分析一家公司的供应链&#xff0c;我们需要供应链不同阶段的数据&#xff0c;如有关采购、制造、运输、库存管理、销售和客户人口统计的数据。我为这项任务找到了一个理想的数据集&#xff0c;其中包括一家时尚和美容初创公司的供应链数据。 1. 相关数据集 让我们导入…

如何在anaconda的环境下安装langchain

1、安装anaconda&#xff1b; 2、在终端上&#xff0c;输入&#xff1a; conda install langchain -c conda-forge Proceed ([y]/n)? y 输入&#xff1a;Y 3、安装完成后&#xff0c;输入&#xff1a; python -c "import langchain; print(langchain.__version__)&…

红外超声波雷达测距

文章目录 一HC-SR04介绍1HC-SR04简介及工作原理 二用HAL库实现HC-SR04测量距离1STM32CubeMX配置2keil53代码的添加 三效果 一HC-SR04介绍 1HC-SR04简介及工作原理 超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等…

5.27周报

这两周邻近毕业故没有很多时间来学习课余内容&#xff0c;另外最近身体有些不舒服【偏头痛】&#xff0c;所以学的内容不多&#xff0c;包括SVM向量机和ResNet【不包括代码复现】 1.SVM支持向量机的大概内容 1、目的&#xff1a; 主要内容是如何找到分类的那条线【超平面】—…

如何一招破解全域运营加盟骗局?

随着全域运营的潜力被持续挖掘&#xff0c;想要通过加盟等方式做全域运营服务商的创业者数量日益增加。在此背景下&#xff0c;各种全域运营加盟骗局接踵而来&#xff0c;不少创业者不得不走上艰难的维权之路。 在采访了多位受害者后&#xff0c;我们总结出了目前已知的全域运营…

使用 FileZilla 在 Windows 和 Ubuntu 之间传文件

网线一端插在板子的WAN口上&#xff0c;另一段插在电脑上&#xff0c;然后要配一下板子的IP。 板侧&#xff1a; 使用串口链接板子与PC端&#xff1b; 输入指令 ifconfig eth0&#xff08;具体看wan口对应哪一个&#xff09; 192.168.1.99 PC端配置&#xff1a; 打开网络设…

二十八、openlayers官网示例Data Tiles解析——自定义绘制DataTile源数据

官网demo地址&#xff1a; https://openlayers.org/en/latest/examples/data-tiles.html 这篇示例讲解的是自定义加载DataTile源格式的数据。 先来看一下什么是DataTile&#xff0c;这个源是一个数组&#xff0c;与我们之前XYZ切片源有所不同。DataTile主要适用于需要动态生成…

【JavaEE进阶】——要想代码不写死,必须得有spring配置(properties和yml配置文件)

目录 本章目标&#xff1a; &#x1f6a9;配置文件 &#x1f6a9;SpringBoot配置文件 &#x1f388;配置⽂件的格式 &#x1f388; properties 配置⽂件说明 &#x1f4dd;properties语法格式 &#x1f4dd;读取配置文件 &#x1f4dd;properties 缺点分析 &#x1f3…

使用THREE.js实现材质球,材质球,定制材质

项目需求&#xff0c;需要自定义材质球&#xff0c;方便使用封装成了类&#xff0c;可以使用在各种项目 1.效果展示 2:实现代码 使用方式&#xff0c;传入初始化DOM,和初始化材质配置即可 import * as THREE from "three"; import { OrbitControls } from "thr…

每日复盘-20240527

今日关注&#xff1a; 六日涨幅最大: ------1--------300956--------- 英力股份 五日涨幅最大: ------1--------300956--------- 英力股份 四日涨幅最大: ------1--------301361--------- 众智科技 三日涨幅最大: ------1--------301361--------- 众智科技 二日涨幅最大: ----…

PGP安装以及汉化

目录 1.安装 2.汉化 1.安装 (1&#xff09;进入setup目录&#xff0c;双击安装包开始安装 (2&#xff09;选择默认语言English (3&#xff09;接受安装协议 I accept the license agreement (4&#xff09;选择第二项 Do not display the Release Notes (5&#xff09;选择“…

解决 WooCommerce 的分析报表失效问题

今天明月的一个境外电商客户反应网站的 WooCommerce 分析报表已经十多天没有更新了&#xff0c;明明每天都有订单交易可分析报表里的数据依旧是十多天前的&#xff0c;好像更新完全停滞了似的。明月也及时的查看了后台的所有设置&#xff0c;确认没有任何问题&#xff0c;WooCo…

内存泄漏案例分享3-view的内存泄漏

案例3——view内存泄漏 前文提到&#xff0c;profile#Leaks视图无法展示非Activity、非Fragment的内存泄漏&#xff0c;换言之&#xff0c;除了Activity、Fragment的内存泄漏外&#xff0c;其他类的内存问题我们只能自己检索hprof文件查询了。 下面有一个极佳的view内存泄漏例子…

安装HAP时提示“code:9568344 error: install parse profile prop check error”错误

问题现象 在启动调试或运行应用/服务时&#xff0c;安装HAP出现错误&#xff0c;提示“error: install parse profile prop check error”错误信息。 解决措施 该问题可能是由于应用使用了应用特权&#xff0c;但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特…