当前位置: 首页 > news >正文

【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类

一、贝叶斯原理

        贝叶斯算法是基于贝叶斯公式的,其公式为:

P(A\mid B)= \frac{P(B\mid A)P(A)}{P(B)}

        其中P(A)叫做先验概率,P(B\mid A)叫做条件概率,P(B)叫做观察概率,P(A\mid B)叫做后验概率,也是我们求解的结果,通过比较后验概率的大小,将后验概率最大的类别作为真实类别

二、朴素贝叶斯分类

        朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的简单概率分类算法,适用于文本分类、垃圾邮件过滤等任务。

        朴素贝叶斯的“朴素”之处在于它假设特征之间相互独立,即给定类别,一个特征的出现不影响其他特征的出现。这在现实世界中通常不成立,但在许多情况下,这种简化的假设仍然能够提供良好的分类性能。

三、自定义数据集 ,使用朴素贝叶斯对其进行分类

1、代码示例:

import numpy as np
from sklearn.naive_bayes import GaussianNB# 1. 自定义数据集
# 生成 100 个样本,每个样本有 2 个特征
X = np.random.randn(100, 2).astype(np.float32)
# 根据特征的线性组合生成标签,大于 0 标记为 1,否则标记为 0
y = (2 * X[:, 0] + 3 * X[:, 1] > 0).astype(np.int32)# 2. 初始化朴素贝叶斯模型
model = GaussianNB()# 3. 训练模型
model.fit(X, y)# 4. 输出训练结果
print("训练完成!")
print("模型参数:")
print("类别先验概率:", model.class_prior_)
print("类别数量:", model.class_count_)
print("每个类别的均值:", model.theta_)
print("每个类别的方差:", model.sigma_)

2、代码解释

① 数据集生成
  • X = np.random.randn(100, 2).astype(np.float32)

        生成 100 个样本,每个样本有 2 个特征。

        使用 np.random.randn 生成符合标准正态分布的随机数。

  astype(np.float32) 将数据类型转换为 32 位浮点数。

  • y = (2 * X[:, 0] + 3 * X[:, 1] > 0).astype(np.int32)

        根据特征的线性组合生成标签。

        公式 2 * X[:, 0] + 3 * X[:, 1] > 0 表示特征的线性组合是否大于 0。

        大于 0 的样本标记为 1,否则标记为 0

  astype(np.int32) 将标签转换为 32 位整数。

② 初始化朴素贝叶斯模型
  • model = GaussianNB()

        使用高斯朴素贝叶斯模型(Gaussian Naive Bayes)。

        适用于连续特征数据。

③ 训练模型
  • model.fit(X, y)

        使用数据集训练模型。

        模型会计算每个类别的先验概率、均值和方差。

④ 输出训练结果
  • model.class_prior_

        输出每个类别的先验概率。

  • model.class_count_

        输出每个类别的样本数量。

  • model.theta_

        输出每个类别的均值。

  • model.sigma_

        输出每个类别的方差。

相关文章:

【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类

一、贝叶斯原理 贝叶斯算法是基于贝叶斯公式的,其公式为: 其中叫做先验概率,叫做条件概率,叫做观察概率,叫做后验概率,也是我们求解的结果,通过比较后验概率的大小,将后验概率最大的…...

02.01 生产者消费者

请使用条件变量实现2生产者2消费者模型&#xff0c;注意1个生产者在生产的时候&#xff0c;另外一个生产者不能生产。 1>程序代码 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h>…...

mac 手工安装OpenSSL 3.4.0

如果你希望继续安装 openssl-3.4.0 而不是降级到 3.1.1&#xff0c;可以尝试以下解决方案。根据你提供的错误信息&#xff0c;问题可能出在测试阶段&#xff08;make test&#xff09;&#xff0c;我们可以尝试跳过测试或修复测试失败的原因。 --- ### **解决方案&#xff1a…...

kamailio-ACC_JSON模块详解【后端语言go】

要确认 ACC_JSON 模块是否已经成功将计费信息推送到消息队列&#xff08;MQueue&#xff09;&#xff0c;以及如何从队列中取值&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 确认 ACC_JSON 已推送到队列 1.1 配置 ACC_JSON 确保 ACC_JSON 模块已正确配置并启用。以下…...

ArkTS语言介绍

文章目录 一、基本知识声明类型运算符语句函数函数声明可选参数Rest参数返回类型函数的作用域函数调用函数类型箭头函数(又名Lambda函数)闭包函数重载类字段方法构造函数可见性修饰符对象字面量抽象类接口接口属性接口继承抽象类和接口泛型类型和函数泛型类和接口泛型约束泛型…...

海外问卷调查之渠道查,企业经营的指南针

海外问卷调查&#xff0c;是企业调研最常用到的方法&#xff0c;有目的、有计划、有系统地收集研究对象的现实状况或历史状况的一种有效手段&#xff0c;是指导企业经营的有效手段。 海外问卷调查充分运用历史法、观察法等方法&#xff0c;同时使用谈话、问卷、个案研究、测试…...

spring和Mybatis的逆向工程

在现代企业级开发中&#xff0c;使用Spring和MyBatis进行快速、高效的数据库操作是非常常见的。本文将深入探讨如何使用Spring和MyBatis进行逆向工程&#xff0c;帮助开发者自动生成数据库相关的代码&#xff0c;提高开发效率和代码质量。 一、什么是逆向工程 逆向工程是指从…...

【Android】问deepseek存储访问

这些天deepseek爆火&#xff0c;我们来问问android问题看看&#xff0c;如果问android中的应用怎么访问外部存储&#xff0c;回答的很清楚&#xff0c;但是如果问的深入一些&#xff0c;比如Android中是怎么控制让应用不能读取其他应用的外部存储文件的&#xff0c;回答的比较抽…...

Android记事本App设计开发项目实战教程2025最新版Android Studio

平时上课录了个视频&#xff0c;从新建工程到打包Apk&#xff0c;从头做到尾&#xff0c;没有遗漏任何实现细节&#xff0c;欢迎学过Android基础的同学参加&#xff0c;如果你做过其他终端软件开发&#xff0c;也可以学习&#xff0c;快速上手Android基础开发。 Android记事本课…...

python学习——函数的返回值

在 Python 中&#xff0c;函数的返回值决定了调用该函数后得到的结果。默认情况下&#xff0c;如果函数没有使用 return 语句或没有明确返回一个值&#xff0c;函数将返回 None。为了实现更复杂的逻辑&#xff0c;可以通过 return 语句返回多个值、错误信息或其他数据类型。 返…...

【竞技宝】裂变天地S1:BB0-2PARI淘汰出局

北京时间2月1日,DOTA2裂变天地S1继续进行,昨日共进行三场比赛,第三场比赛迎来败者组第二轮PARI对阵BB。以下是本场比赛的详细战报。 第一局: 首局比赛,BB在天辉方,PARI在夜魇方。阵容方面,BB点出了圣堂、卡尔、玛尔斯、奶绿、亚巴顿,PARI则是拿到小娜迦、凤凰、大圣、玛西、萨…...

数据分析系列--⑨RapidMiner训练集、测试集、验证集划分

一、数据集获取 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 2.3 方法二 一、数据集获取 点击下载数据集 此数据集包含538312条数据. 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 使用Filter Example Range算子. …...

实践Rust:编写一个猜数字游戏

如果你正在学习Rust&#xff0c;并且想通过一个有趣的小项目来巩固所学知识&#xff0c;那么“猜数字游戏”是一个绝佳的选择&#xff01;这个游戏的逻辑非常简单&#xff1a;程序会随机生成一个数字&#xff0c;玩家需要猜测这个数字是多少&#xff0c;程序会告诉玩家猜大了还…...

JavaFX - 3D 形状

在前面的章节中&#xff0c;我们已经了解了如何在 JavaFX 应用程序中的 XY 平面上绘制 2D 形状。除了这些 2D 形状之外&#xff0c;我们还可以使用 JavaFX 绘制其他几个 3D 形状。 通常&#xff0c;3D 形状是可以在 XYZ 平面上绘制的几何图形。它们由两个或多个维度定义&#…...

阿里新发的大模型Qwen2.5-max如何?

阿里新发布的大模型Qwen2.5-Max是一款性能卓越、技术先进的大型语言模型&#xff0c;其在多个方面展现了突出的表现。以下是基于我搜索到的资料对Qwen2.5-Max的详细评价&#xff1a; 技术特点 超大规模预训练数据&#xff1a;Qwen2.5-Max采用了超过20万亿tokens的超大规模预训…...

文本复制兼容方案最佳实现落地。

文章目录 一、navigator.clipboard.writeText二、方案落地总结 一、navigator.clipboard.writeText navigator.clipboard.writeText 是一个Web API&#xff0c;它允许网页脚本将文本数据写入用户的系统剪贴板。这个API是异步的&#xff0c;并且设计用于提高安全性和用户体验&a…...

x86-64数据传输指令

关于汇编语言一些基础概念的更详细的介绍&#xff0c;可移步MIPS指令集&#xff08;一&#xff09;基本操作_mips指令 sw-CSDN博客 该指令集中一个字2字节。 该架构有16个64位寄存器&#xff0c;名字都以%r开头&#xff0c;每个寄存器的最低位字节&#xff0c;低1~2位字节&…...

LigerUI在MVC模式下的响应原则

LigerUI是基于jQuery的UI框架&#xff0c;故他也是遵守jQuery的开发模式&#xff0c;但是也具有其特色的侦听函数&#xff0c;那么当LigerUI作为View层的时候&#xff0c;他所发送后端的必然是表单的数据&#xff0c;在此我们以俩个div为例&#xff1a; {Layout "~/View…...

java CountDownLatch和CyclicBarrier

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解CountDownLatch和CyclicBarrier的使用&#xff0c;主要是复习Aqs 另外工作中用到CountDownLatch的地方还很多&#xff0c;一般是完成某些事情才能继续某…...

力扣动态规划-17【算法学习day.111】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;建议灵神的题单和代码随想录&#xff09;和记录自己的学习过程&#xff0c;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关…...

[ linux添加应用图标到桌面 ] : 中将应用程序添加图标(快捷方式 ),并放置任务栏中,.desktop文件使用

.desktop文件格式在你的主目录中打开终端(ctrlaltt)&#xff0c;接着输入以下代码&#xff1a;touch test.desktop vim test.desktop这里我选择的是vim的编辑方式&#xff0c;当然如果你没有vim或者说不太熟练的话&#xff0c;你可以直接双击打开该文件。代码解释&#xff1a;t…...

别再问怎么给QQ机器人加功能了!手把手教你用Nonebot2写一个天气查询插件(附完整代码)

NoneBot2实战&#xff1a;从零构建智能QQ机器人天气查询插件 在当今即时通讯生态中&#xff0c;智能机器人已成为提升社群互动效率的利器。本文将深入探讨如何基于Python的NoneBot2框架&#xff0c;为QQ机器人开发一个功能完备的天气查询插件。不同于基础教程&#xff0c;我们聚…...

Flask-base实战案例:从零构建功能完备的博客系统

Flask-base实战案例&#xff1a;从零构建功能完备的博客系统 【免费下载链接】flask-base A simple Flask boilerplate app with SQLAlchemy, Redis, User Authentication, and more. 项目地址: https://gitcode.com/gh_mirrors/fl/flask-base Flask-base是一个功能强大…...

数据宝藏库:Awesome Public Datasets完整入门指南

数据宝藏库&#xff1a;Awesome Public Datasets完整入门指南 【免费下载链接】awesome-public-datasets A topic-centric list of HQ open datasets. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-public-datasets 你是否曾经为了寻找高质量的数据集而烦…...

ROS2开发避坑:用CycloneDDS配置文件解决本地回环通信中断问题(附完整XML)

ROS2通信稳定性实战&#xff1a;CycloneDDS深度配置指南 当你在机器人开发过程中遭遇节点间通信时断时续的问题&#xff0c;那种感觉就像在暴雨天试图用对讲机协调团队——关键指令总在最重要时刻丢失。本文将揭示如何通过CycloneDDS的精细配置&#xff0c;在硬件网络不稳定的…...

抖音批量下载终极指南:一键获取无水印视频与创作者全部作品

抖音批量下载终极指南&#xff1a;一键获取无水印视频与创作者全部作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...

UDS诊断自动化测试入门:用Python模拟Tester端,批量刷写DID与安全访问

UDS诊断自动化测试实战&#xff1a;Python构建高覆盖率ECU测试框架 在汽车电子控制单元&#xff08;ECU&#xff09;开发中&#xff0c;诊断功能测试往往是最耗时的手工操作环节之一。想象一下&#xff0c;当需要验证数百个数据标识符&#xff08;DID&#xff09;的读写功能时&…...

Allegro PCB设计必备:3分钟搞定带钻孔数据的DXF文件导出(附常见错误排查)

Allegro PCB设计实战&#xff1a;高效导出带钻孔数据的DXF文件全攻略 在PCB设计领域&#xff0c;Allegro作为行业标杆工具&#xff0c;其文件输出质量直接关系到生产制造的准确性。特别是当设计需要与其他CAD系统协作或提交给PCB制造商时&#xff0c;DXF文件的完整性至关重要。…...

MT5 Zero-Shot参数详解:Temperature与Top-P对中文改写多样性的影响

MT5 Zero-Shot参数详解&#xff1a;Temperature与Top-P对中文改写多样性的影响 1. 项目概述 MT5 Zero-Shot Chinese Text Augmentation 是一个基于 Streamlit 和阿里达摩院 mT5 模型构建的本地化 NLP 工具。这个工具专门用于中文句子的语义改写和数据增强&#xff0c;能够在保…...

Overleaf项目本地化实战:用VS Code插件管理、Git版本控制,再搭配Copilot提效

Overleaf项目本地化实战&#xff1a;用VS Code插件管理、Git版本控制&#xff0c;再搭配Copilot提效 对于经常使用LaTeX撰写学术论文或技术文档的用户来说&#xff0c;Overleaf无疑是一个强大的云端协作平台。然而&#xff0c;当项目规模扩大、需要更精细的版本控制时&#xff…...