机器学习——朴素贝叶斯

目录

一、贝叶斯方法

背景知识

 贝叶斯公式

二、朴素贝叶斯原理

判别模型和生成模型

 1.朴素贝叶斯法是典型的生成学习方法

2.朴素贝叶斯法的基本假设是条件独立性

3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测

用于文本分类的朴素贝叶斯模型:

三、朴素贝叶斯案例

四、朴素贝叶斯代码实现


一、贝叶斯方法

背景知识

  • 贝叶斯分类:贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
  • 先验概率:根据以往经验和分析得到的概率。我们用P(Y)来代表在没有训练数据前假设Y拥有的初始概率。
  • 后验概率:根据已经发生的事件来分析得到的概率。以P(Y|X)代表假设X 成立的情下观察到Y数据的概率,因为它反映了在看到训练数据X后Y成立的置信度。
  • 联合概率:联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。X与Y的联合概率表示为P(X,Y)、 P(XY) 或P(X∩Y) 。假设X和Y都服从正态分布,那么P(X<5,Y<0)就是一个联合概率,表示 X<5,Y<0两个条件同时成立的概率。表示两个事件共同发生的概率。

 贝叶斯公式

 朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P(X,Y),然后求得后验概率分布P(Y|X)。

学习联合概率的方法:利用训练数据学习P(X|Y)的估计,与先验的P(Y)相乘,得到    P(X,Y)=P(X|Y) P(Y)

二、朴素贝叶斯原理

判别模型和生成模型

监督学习方法又分 生成方法(Generative approach)和判别方法(Discriminative approach)

所学到的模型分别称为 生成模型(Generative Model)和判别模型(Discriminative Model)。

 1.朴素贝叶斯法是典型的生成学习方法

生成方法由训练数据学习联合概率分布 P(X,Y),然后求得后验概率分布P(Y|X)。具体来说,利用训练数据学习P(X|Y)和P(Y)的估计,得到联合概率分布:

概率估计方法可以是极大似然估计或贝叶斯估计。

2.朴素贝叶斯法的基本假设是条件独立性

c_k代表类别,k代表类别序号。

这是一个较强的假设。由于这一假设,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。

3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测

我们要求的是P(Y|X),根据生成模型定义我们可以求P(X,Y)和P(Y)。 这个称作朴素贝叶斯假设条件独立,形式化表示为:(给定Z的情况下,X、Y条件独立)

也可以表示为:

用于文本分类的朴素贝叶斯模型:

首先随机选定了邮件的类型y(垃圾邮件或普通邮件),然后一个人翻遍词典的所有词,依照概率p(x^(i)|y)随机决定一个词是否出现,出现标示为1,否则标示为0 。假设有50000个单词,那么这封邮件的概率可以表示为:

联合概率将输入x分到联合概率最大的类 y ̂ :

三、朴素贝叶斯案例

假设我们正在构建一个分类器,该分类器说明文本是否与运动(Sports)有关。我们的训练数据有5句话:

我们想要计算句子“A very close game”是 Sports 的概率以及它不是 Sports 的概率。

P( Sports | a very close game ) 即这个句子的类别是Sports的概率 

特征:单词的频率

已知贝叶斯定理,则:

由于我们只是试图找出哪个类别有更大的概率,可以舍弃除数,只是比较 我们假设一个句子中的每个单词都与其他单词无关。

计算每个类别的先验概率:

对于训练集中的给定句子,P(Sports )的概率为⅗。P(Not Sports )是⅖。 

然后,再计算P(game│Sports)就是“game”有多少次出现在Sports的样本,然后除以sports为标签的文本的单词总数(3+3+5=11)。

因此,P(game│Sports)=2/11。

“close”不会出现在任何sports样本中!那就是说P(close│Sports)=0。

通过使用一种称为拉普拉斯平滑的方法:我们为每个计数加1,因此它永远不会为零。为了平衡这一点,我们将可能单词的数量添加到除数中,因此计算结果永远不会大于1(且保证了最终和为1的概率性质)。

在这里的情况下,可能单词是['a', 'great', 'very', 'over', 'it', 'but', 'game', 'election', 'clean', 'close', 'the', 'was', 'forgettable', 'match']。

由于可能的单词数是14,因此应用平滑处理可以得到 P( game | sports )=(2+1)/(11+14)

拉普拉斯平滑是一种用于平滑分类数据的技术。引入拉普拉斯平滑法来解决零概率问题,通过应用此方法,先验概率和条件概率可以写为

其中K表示类别数量,A表示a_j中不同值的数量,通常λ=1 加入拉普拉斯平滑之后,避免了出现概率为0的情况,又保证了每个值都在0到1的范围内,又保证了最终和为1的概率性质。

 

四、朴素贝叶斯代码实现

最常用的GaussianNB是高斯贝叶斯分类器。它假设特征的条件概率分布满足高斯分布:

 

 其他贝叶斯分类器:

  1. MultinomialNB是多项式贝叶斯分类器,它假设特征的条件概率分布满足多项式分布;
  2. BernoulliNB是伯努利贝叶斯分类器。它假设特征的条件概率分布满足二项分布。

 GaussianNB是高斯朴素贝叶斯分类器的scikit-learn实现。

GaussianNB是高斯朴素贝叶斯分类器的Numpy实现。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零代码编程:用ChatGPT批量提取flash动画swf文件中的mp3

文件夹&#xff1a;C:\迅雷下载\有声绘本_flash[淘宝-珍奥下载]\有声绘本 flash&#xff0c;里面有多个flash文件&#xff0c;怎么转换成mp3文件呢? 可以使用swfextract工具从Flash动画中提取音频&#xff0c;下载地址是http://www.swftools.org/download.html&#xff0c;也…

接口自动化测试之Fiddler使用教程

一、Fiddler 简介 Fiddler工具介绍 Fiddler是一个通过代理的方式来进行抓包工具&#xff0c;运行时会在本地建立一个代理服务&#xff0c;默认地址&#xff1a;127.0.0.1:8888。Fiddler开启之后&#xff0c;配置本机代理&#xff0c;再打开IE浏览器&#xff0c;IE的PROXY会自…

具名挂载和匿名挂载

匿名卷挂载 &#xff1a; -v 的时候只指定容器内的路径 如下面这个&#xff1a;/etc/nginx 1.docker run -d -P --name nginx -v /etc/nginx nginx 2.查看所有卷 docker volume ls 这里发现&#xff0c;这就是匿名挂载&#xff0c;只指定容器内的路径&#xff0c;没有指定…

刷题学习记录BUUCTF

[极客大挑战 2019]RCE ME1 进入环境直接就有代码 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]/",$code)){die("NO.");}eval($co…

如何低门槛开发有趣实用的ZigBee产品?

一、什么是 Zigbee 协议&#xff1f; Zigbee 技术是一种连接距离短、功耗低、复杂程度低、数据传输量低的无线通信技术&#xff0c;其命名灵感源自于蜜蜂在群体中的信息传输。它主要通过网关与互联网进行通信&#xff0c;并嵌入各种智能设备&#xff0c;最终实现自动控制和远程…

射频功率放大器有哪些用途

射频功率放大器是一种专用于放大射频信号的设备&#xff0c;它在现代通信、广播、雷达、无线电频谱监测和科学研究等领域中发挥着重要的作用。射频功率放大器能够将输入的低功率射频信号放大为较高功率的信号&#xff0c;以满足各种应用场景对信号传输距离、质量和稳定性的要求…

基于SSM的博客系统

基于SSM的博客系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringMyBatisSpringMVC工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 热点 博客详情 登录界面 管理员界面 博主界面 摘要 博客系统作为信息传播和分享的重…

Python 解决tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介&#xff0c;使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象&#xff0c;并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—武汉大学专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室&#xff0c;浓厚创新产学研氛围&#xff01; 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; &#x1f559;时间&#xff1a;…

香橙派5部署chatglm2-6b模型

香橙派5部署chatglm2-6b模型 环境信息&#xff1a; 部署服务器&#xff1a;orangepi 5 16G版本 系统版本&#xff1a;Ubuntu 22.04.3 LTS 参考文档&#xff1a; 利用GPU加速&#xff0c;在Orange Pi上跑LLMs &#xff1a; https://zhuanlan.zhihu.com/p/650110025 遥遥领…

二十三、W5100S/W5500+RP2040树莓派Pico<Web I/O 通过网页控制板载LED灯>

文章目录 1 前言2 简介2 .1 什么是Web&#xff1f;2.2 Web的优点2.3 Web数据交互原理2.4 Web应用场景 3 WIZnet以太网芯片4 HTTP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 Web只是一个静态的文…

java项目之网上跳蚤市场(ssm框架)

项目简介 网上跳蚤市场实现了以下功能&#xff1a; 管理员功能需求 管理员登陆后&#xff0c;主要模块包括首页&#xff0c;个人中心&#xff0c;会员管理&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;求购信息管理&#xff0c;留言板管理&#xff0c;系统管…

JNPF开发平台:加速企业数字化转型,提升业务效率

如今&#xff0c;随着信息化的深入发展&#xff0c;数字化转型已经成为企业生存和发展的关键。为了在竞争激烈的市场中保持领先地位&#xff0c;企业需要快速地适应变化&#xff0c;优化业务流程&#xff0c;并提供优质的用户体验。而在这其中&#xff0c;低代码开发平台JNPF是…

搜款网VVIC商品详情API接口

搜款网VVIC商品详情接口提供了全面的API接口&#xff0c;通过该接口&#xff0c;开发者可以使用商品ID等参数请求API&#xff0c;获取商品的详细信息&#xff0c;如商品标题、描述、价格、库存状态、销售量等。 要使用VVIC商品详情接口&#xff0c;您需要先注册开发者账号并申…

HCIP---VRRP

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. VRRP概述 VRRP---虚拟路由器冗余协议 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于在多个路由器之间创建虚拟路由器的协议。 VRRP使用了一系列协议来实现路…

5+m6A+预后模型+WGCNA,简单又高效,学习下这篇思路吧

今天给同学们分享一篇生信文章“Targeting AURKA in Cancer: molecular mechanisms and opportunities for Cancer therapy”&#xff0c;这篇文章发表在Front Endocrinol (Lausanne)期刊上&#xff0c;影响因子为5.2。 结果解读&#xff1a; 在训练集中&#xff0c;基于3个与…

GC5958低压三相无刷直流驱动芯片,无感,正弦,低压,PWM调速可替代APX9358/茂达

GC5958提供了无传感器的三相无刷直流电机的速度控制的所有电路。正弦波驱动器的方法将是更好的低噪声。控制器功能包括启动电路、反电动势换向控制。脉宽调制) 速度控制。锁定保护和热关断电路GC5958既适合游戏机器&#xff0c;也适用于需要无声驱动的CPU冷却器。它以DFN3x3-10…

麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包

原文链接&#xff1a;麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包&#xff0c;本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版…

嵌入式面试常见问题(三)

1.linux下的proc文件夹是干什么的&#xff1f; 进程信息&#xff1a;/proc文件夹包含有关系统上运行的每个进程的信息。您可以在/proc中找到以进程ID&#xff08;PID&#xff09;为名称的子文件夹&#xff0c;每个子文件夹包含有关特定进程的信息&#xff0c;如状态、命令行参数…

【云栖2023】王峰:开源大数据平台3.0技术解读

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;王峰 | 阿里云研究员&#xff0c;阿里云计算平台事业部开源大数据平台负责人 演讲主题&#xff1a;开源大数据平台3.0技术解读 实时化与Serverless是开源大数据3.0时代的必然选…