NBM 算法【python,算法,机器学习】

朴素贝叶斯法(Naive Bayes model)是基于贝叶斯定理与特征条件独立假设的分类方法。

贝叶斯定理

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)
其中A表示分类,B表示属性,因此此公式更通俗的表述如下:
P ( 分类 ∣ 属性 ) = P ( 属性 ∣ 分类 ) ∗ P ( 分类 ) P ( 属性 ) P(分类|属性)=\frac{P(属性|分类) * P(分类)}{P(属性)} P(分类属性)=P(属性)P(属性分类)P(分类)
即在已知属性B的前提下,分类为A的概率等于似然率(已知分类中属性B的概率)乘以先验概率(分类A的概率)除以证据概率(属性B的概率)。

优点

  1. 对于大量数据的预测靠谱。
  2. 计算简便。

缺点

  1. 属性之间必须独立。
  2. 选取没有相互干涉的属性是难点。

举例:在夏季,某公园男性穿凉鞋的概率为 1/2 ,女性穿凉鞋的概率为 2/3 ,
并且该公园中男女比例通常为 2:1 ,问题:若你在公园中随机遇到一个穿凉鞋的人,
请问他的性别为男性或女性的概率分别为多少?

P(男|穿凉鞋)=P(穿凉鞋|男)P(男)/P(穿凉鞋)
= 1/2 * 2/3 / (2/3 * 1/2 + 1/3
2/3)
= 1/3 / (1/3+2/9)
= 3/5

P(女|穿凉鞋)=P(穿凉鞋|女)P(女)/P(穿凉鞋)
= 2/3 * 1/3 / (2/3 * 1/2 + 1/3
2/3)
= 2/9 / (1/3+2/9)
= 2/9 * 9/5
= 2/5

所以在公园里,随机遇到一个穿凉鞋的人,性别为女男的概率是 3/5,性别为女的概率为 2/5。

怎样避免0概率问题

使用拉普拉斯修正,修改公式如下:
P ^ ( C = c j ) = N ( c j ) + 1 N + C \hat{P}(C=c_j)=\frac{N(c_j)+1}{N+C} P^(C=cj)=N+CN(cj)+1
上式表示 c j c_j cj分类的概率,其中 C 表示分类数量,N 表示所有的数量。
P ^ ( x i ∣ C = c j ) = N ( x i ∣ C = c j ) + 1 N + X \hat{P}(x_i|C=c_j)=\frac{N(x_i|C=c_j)+1}{N+X} P^(xiC=cj)=N+XN(xiC=cj)+1
上式表示特定 x i x_i xi属性中类 c j c_j cj的概率,其中 X 表示属性数量。

高斯朴素贝叶斯分类器

  1. 高斯分布
    P ( x i ∣ μ , σ ) = 1 ( 2 π σ 2 ) 1 2 ∗ e − ( x i − μ ) 2 2 σ 2 P(x_i|\mu,\sigma)=\frac{1}{(2\pi \sigma^2)^{\frac{1}{2}}} * e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} P(xiμ,σ)=(2πσ2)211e2σ2(xiμ)2
    其中 μ = 1 N ∑ i = 1 N x i \mu=\frac{1}{N}\sum\limits_{i=1}^{N}x_i μ=N1i=1Nxi表示样本的期望, σ 2 = 1 N ∑ i = 1 N ( x i − μ ) 2 \sigma^2=\frac{1}{N}\sum\limits_{i=1}^{N}(x_i-\mu)^2 σ2=N1i=1N(xiμ)2表示样本的方差。
    如果要使用无偏差估计,N 取 N+1。
  2. 如果特征值服从高斯分布,那么根据特征值估计分类概率的公式如下:
    P ^ ( x i ∣ C = c i ) = 1 ( 2 π σ i j 2 ) 1 2 ∗ e − ( x i − μ i j ) 2 2 σ i j 2 \hat{P}(x_i|C=c_i)=\frac{1}{(2\pi \sigma_{ij}^2)^{\frac{1}{2}}} * e^{-\frac{(x_i-\mu{ij})^2}{2\sigma_{ij}^2}} P^(xiC=ci)=(2πσij2)211e2σij2(xiμij)2
    其中 μ i j \mu_{ij} μij表示分类为 c i c_i ci时,属性 x j x_j xj的期望,
    σ i j 2 \sigma_{ij}^2 σij2表示分了为 c i c_i ci时,属性 x j x_j xj的方差。

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

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

相关文章

Unity中的MVC框架

基本概念 MVC全名是Model View Controller 是模型(model)-视图(view)-控制器(controller)的缩写 是一种软件设计规范,用一种业务逻辑、数据、界面显示 分离的方法组织代码 将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时&#x…

【嵌入式硬件】DRV8874电机驱动

目录 1 芯片介绍 1.1 特性简介 1.2 引脚配置 1.3 最佳运行条件 2 详细说明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 独立半桥控制模式 2.2 电流感测和调节 2.2.1 IPROPI电流感测 2.2.2 IMODE电流调节 3.应用 3.1设计要求 3.2 设计…

AI换脸FaceFusion一键云部署指南

大家好,从我开始分享到现在,收到很多朋友的反馈说配置很低玩不了AI。本篇是一个云端部署AI项目的指南,帮助大家在云端进行AI项目的部署。我会从云平台的选择、代码部署、保存镜像几个方面进行详细的介绍。没有代码基础的小白也不用担心&#…

exe4j innosetup

exe4j:jdk: 打包时:需要的文件最好放到单独的一个文件夹下,主机安装32位jdk,exe4j用32位的。 附带jre: jre用32位的(jdk下的jre)可使用X86,X64.用相对路径。 只打64位时,需要选择32-bit or 64-bit (generate 64…

乐观锁 or 悲观锁 你怎么选?

你有没有听过这样一句话:悲观者正确,乐观者成功​。那么今天我来分享下什么是乐观锁​和悲观锁。 乐观锁和悲观锁有什么区别,它们什么场景会用 乐观锁 乐观锁基于这样的假设:多个事务在同一时间对同一数据对象进行操作的可能性很…

fps游戏中如何将矩阵转换为二维屏幕上的矩形坐标

fps游戏中如何将矩阵转换为二维屏幕上的矩形坐标 matrix[4][4]: 4x4 矩阵,通常用于3D变换(如模型视图投影矩阵)。 float* location: 一个指向位置坐标的指针,表示要转换的3D位置。 int Window_w, int Window_h: 窗口的宽度和高…

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例…

Python导出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云链-…

基于强化学习的控制率参数自主寻优

1.介绍 针对控制建模与设计场景中控制参数难以确定的普遍问题,提出了一种基于强化学习的控制律参数自主优化解决方案。该方案以客户设计的控制律模型为基础,根据自定义的控制性能指标,自主搜索并确定最优的、可状态依赖的控制参数组合。 可…

unity打包的WebGL部署到IIS问题

部署之后会出错,我遇到的有以下几种; 进度条卡住不动 明明已经部署到了IIS上,为什么浏览网页的时候还是过不去或者直接报错。 进度条卡住不动的问题其实就是wasm和data的错误。 此时在浏览器上按F12进入开发者模式查看错误(下图…

前端知识点杂记

本文章用于记录前端学习中遇到的琐碎问题及解决方法,欢迎大家一起学习补充~ 前端如何获取UUID发送至后端? 1. 命令行下载uuid库 npm install uuid 2. 工程导入uuid库 import { v4 as uuidv4 } from "uuid"; 3. 使用方法生成uuid实例 co…

付费工具逻辑

1.付费推广目的: 传播信息心理暗示;扩大销售,指导消费;树立形象,塑道品牌; 2.付费和免费广告: 付费主要为了增加曝光;免费广告一般比付费广告转化率高; 3.平台广告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 一、环境信息 K8S版本 操作系统 CPU架构 服务版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌浏览器开启Gemini Nano模型

前提 确保您的操作系统语言设置为英语(美国) 可能还需要将 Chrome 浏览器的语言更改为英语(美国)。 下载dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:确认您的版本高于 127.0.6512.0。 其中一个Chrome版本不行就切换另外一个版本 绕过性能检查 Tab输入: …

中国美业元宇宙-探索美容行业的未来

随着科技的不断进步和数字化转型的深入,元宇宙作为一种全新的虚拟现实交互平台,正逐渐成为推动多个行业革新的重要力量。在这种背景下,中国美业也在积极拥抱元宇宙,希望通过这一新兴技术为传统美容行业带来创新与发展。 #### 中国…

结构体相关习题的补充

结构体相关习题的补充 题目1: 如有以下代码: struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是:( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

正邦科技(day4)

烧录 一、烧录固件二、 通讯模块升级1:USB的方式升级固件2:通过mqtt的方式升级固件3:切换环境 三、 烧录WiFi1:短接2:烧录脚本 设备注意事项: 第一种方式:通信模组和MCU都可以统一烧录BoodLoade…

Oracle Hint /*+APPEND*/插入性能总结

oracle append用法 Oracle中的APPEND用法主要用于提高数据插入的效率。 基本用法:在使用了APPEND选项后,插入数据会直接加到表的最后面,而不会在表的空闲块中插入数据。这种做法不需要寻找freelist中的free block,从而避免了在…

【计算机毕设】基于Spring Boot的课程作业管理系统 - 源码免费(私信领取)

免费领取源码 | 项目完整可运行 | v:chengn7890 诚招源码校园代理! 1. 研究目的 课程作业管理系统旨在为教师和学生提供一个便捷的平台,用于发布、提交和评定课程作业。本系统旨在提高作业管理的效率,促进教…

Golang反射

文章目录 基本介绍reflect包reflect.Typereflect.Valuereflect.Kind具体类型、空接口与reflect.Value的相互转换 反射应用场景修改变量的值访问结构体的字段信息调用变量所绑定的方法实现函数适配器创建任意类型的变量 基本介绍 基本介绍 在Go中,反射(re…