机器学习之贝叶斯分类器和混淆矩阵可视化
贝叶斯分类器
目录
- 贝叶斯分类器
- 1 贝叶斯分类器
- 1.1 概念
- 1.2算法理解
- 1.3 算法导入
- 1.4 函数
- 2 混淆矩阵可视化
- 2.1 概念
- 2.2 理解
- 2.3 函数导入
- 2.4 函数及参数
- 2.5 绘制函数
- 3 实际预测
- 3.1 数据及理解
- 3.2 代码测试
1 贝叶斯分类器
1.1 概念
贝叶斯分类器是基于贝叶斯定理构建的分类方法,它通过计算后验概率来对数据进行分类。
1.2算法理解
- P(A|B) 是在事件B发生的条件下事件A发生的概率,称为A的后验概率。
- P(B|A) 是在事件A发生的条件下事件B发生的概率。
- P(A)是事件A发生的概率,称为A的先验概率。
- P(B)是事件B发生的概率。
现在,我们使用朴素贝叶斯牙类器莱计算给定特征值下每个类别的后验率:
P(D=0|A=1,B=1,C=0)=P(D=0)P(A=1ID=0)P(B=1|D=0)P(C=0|D=0)=0.50.6670.3330.667=0.08335583549429845
P(D=1|A=1,B=1,C=0)=P(D=1)P(A=1|D=1)P(B=1|D=1)P(C=0ID=1)0.50.3330.6670.333=0.037499999999999996
1.3 算法导入
from sklearn.naive_bayes import MultinomialNB
1.4 函数
- MultinomialNB()
- fit(x_tr,y_tr)
- predict(x_tr)
2 混淆矩阵可视化
2.1 概念
混淆矩阵(Confusion Matrix),也称为错误矩阵,是一种特别适用于监督学习的评估分类模型性能的工具,尤其是在分类问题中。混淆矩阵展示了实际类别与模型预测类别之间的关系。
2.2 理解
- TP(True Positive):正确预测到的正类样本数。
- FN(False Negative):实际为正类但预测为负类的样本数。
- FP(False Positive):实际为负类但预测为正类的样本数。
- TN(True Negative):正确预测到的负类样本数。
基于混淆矩阵,可以计算出以下几种性能指标:
- 准确率(Accuracy):(TP + TN)/(TP + TN + FP + FN)
- 精确率(Precision):TP/(TP + FP)
- 召回率(Recall)或真正例率(True Positive Rate, TPR):TP/(TP + FN)
- F1分数(F1 Score): 2 *(Precision * Recall)/(Precision + Recall)
- 假正例率(False Positive Rate, FPR):FP/(FP + TN)
2.3 函数导入
from sklearn.metrics import confusion_matrix
2.4 函数及参数
metrics.classification_report(y_te,te_pr,digits=6)
- y_te,已知道结果类别
- te_pr,训练模型预测的结果类别
- digits=6,结果保留的小数点
2.5 绘制函数
代码展示:
def cm_plot(y,y_pr):cm = confusion_matrix(y,y_pr)plt.matshow(cm,cmap=plt.cm.Blues)plt.colorbar()for x in range(len(cm)):for y in range(len(cm)):plt.annotate(cm[x,y],xy=(y,x),horizontalalignment='center',verticalalignment='center')plt.ylabel('TRUE label')plt.xlabel('PREDICTED label')return plt
3 实际预测
3.1 数据及理解
第一列为次序,需要删除,最后一列为结果类别,其他为特征数据。
3.2 代码测试
代码展示:
import pandas as pd
from sklearn.naive_bayes import MultinomialNB
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
from sklearn import metricsdef cm_plot(y,y_pr):cm = confusion_matrix(y,y_pr)plt.matshow(cm,cmap=plt.cm.Blues)plt.colorbar()for x in range(len(cm)):for y in range(len(cm)):plt.annotate(cm[x,y],xy=(y,x),horizontalalignment='center',verticalalignment='center')plt.ylabel('TRUE label')plt.xlabel('PREDICTED label')return pltdata = pd.read_csv('iris.csv')
data = data.drop(['1'],axis=1)
x = data.drop(['0'],axis=1)
y = data['0']x_tr,x_te,y_tr,y_te = \train_test_split(x, y, test_size=0.2,random_state=0)by = MultinomialNB()
by.fit(x_tr,y_tr)
tr_pr = by.predict(x_tr)
cm_plot(tr_pr,y_tr).show()
te_pr = by.predict(x_te)
cm_plot(te_pr,y_te).show()
print(metrics.classification_report(y_te,te_pr,digits=6))
运行结果:
相关文章:

机器学习之贝叶斯分类器和混淆矩阵可视化
贝叶斯分类器 目录 贝叶斯分类器1 贝叶斯分类器1.1 概念1.2算法理解1.3 算法导入1.4 函数 2 混淆矩阵可视化2.1 概念2.2 理解2.3 函数导入2.4 函数及参数2.5 绘制函数 3 实际预测3.1 数据及理解3.2 代码测试 1 贝叶斯分类器 1.1 概念 贝叶斯分类器是基于贝叶斯定理构建的分类…...

关于大数据的基础知识(一)——定义特征结构要素
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(一&a…...

2025 GitCode 开发者冬日嘉年华:AI 与开源的深度交融之旅
在科技的浪潮中,AI 技术与开源探索的火花不断碰撞,催生出无限可能。2025 年 1 月 4 日,由 GitCode 联合 CSDN COC 城市开发者社区精心打造的开年首场开发者活动:冬日嘉年华在北京中关村 • 鼎好 DH3-A 座 22 层盛大举行࿰…...
【MyBatis-Plus 进阶功能】开发中常用场景剖析
MyBatis-Plus(MP)除了封装常见的 CRUD 操作,还提供了一些高级功能,进一步简化复杂场景下的开发工作。本文将逐一讲解 逻辑删除、自动填充、多表关联查询的原理与使用方式,让你快速掌握这些技巧! 一、逻辑删…...

【C++/控制台】2048小游戏
源代码: #include <iostream> #include <windows.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h>// #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME)…...
Linux 中 top 命令的使用与实例解读
目录 Linux 中 top 命令的使用与实例解读一、top 命令参数二、输出字段含义(一)系统信息(二)任务信息(三)CPU 信息(四)内存信息 三、实例解读系统信息任务信息CPU信息内存信息进程列…...
C++ STL 中的 `unordered_map` 和 `unordered_set` 总结
1. unordered_map unordered_map 是一个基于哈希表实现的容器,存储键值对(key-value),每个键必须唯一,可以快速插入、删除、查找。 基本特性 存储结构:键值对 (key-value)。键唯一性:每个键在…...

机器学习基础-概率图模型
(一阶)马尔科夫模型的基本概念 状态、状态转换概率、初始概率 状态转移矩阵的基本概念 隐马尔可夫模型(HMM)的基本概念 条件随机场(CRF)的基本概念 实际应用中的马尔科夫性 自然语言处理: 在词性…...

【MySQL】九、表的内外连接
文章目录 前言Ⅰ. 内连接案例:显示SMITH的名字和部门名称 Ⅱ. 外连接1、左外连接案例:查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来 2、右外连接案例:对stu表和exam表联合查询,把…...
芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU
目录 芯片的概念结构 芯片的派系划分 通用芯片(CPU,MPU,GPU,DSP) 定制芯片(FPGA,ASIC) 芯片之上的集成(MCU,SOC,ECU) 软硬件的匹…...
halcon三维点云数据处理(十)locate_cylinder_3d
目录 一、locate_cylinder_3d例程代码二、gen_binocular_rectification_map函数三、binocular_disparity函数四、自定义函数select_best_candidates五、自定义函数remove_shadowed_regions 一、locate_cylinder_3d例程代码 1、读取或者创建3D形状模型, 2、根据双目…...
vue(2,3), react (16及以上)开发者工具资源
在前端开发的广阔领域中,Vue.js 和 React.js 作为两大主流框架,各自拥有庞大的用户群体和丰富的生态系统。为了帮助开发者更高效地进行调试和开发,Vue Devtools 和 React 开发者工具应运而生,成为这两个框架不可或缺的辅助工具。本…...

2025年华为OD上机考试真题(Java)——整数对最小和
题目: 给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。 注意:两对元素如果对应…...

进程间通信——网络通信——UDP
进程间通信(分类):网络通信、无名管道、有名管道、信号、消息队列、共享内存、信号量集 OSI七层模型:(理论模型) 应用层 : 要传输的数据信息,如文件传输,电子邮件等 表示层 : 数…...

【我的 PWN 学习手札】IO_FILE 之 FSOP
FSOP:File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus,进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP (…...

新兴的开源 AI Agent 智能体全景技术栈
新兴的开源 AI Agent 智能体全景技术栈 LLMs:开源大模型嵌入模型:开源嵌入模型模型的访问和部署:Ollama数据存储和检索:PostgreSQL, pgvector 和 pgai后端:FastAPI前端:NextJS缺失的一环:评估和…...

统计学习方法(第二版) 概率分布学习
本文主要介绍机器学习的概率分布,帮助后续的理解。 定义直接从书上搬的想自己写,但没有定义准确,还浪费事件,作为个人笔记,遇到速查。 目录 一、二点分布(0-1分布、伯努利分布) 二、二项分布…...

淺談Cocos2djs逆向
前言 簡單聊一下cocos2djs手遊的逆向,有任何相關想法歡迎和我討論^^ 一些概念 列出一些個人認為比較有用的概念: Cocos遊戲的兩大開發工具分別是CocosCreator和CocosStudio,區別是前者是cocos2djs專用的開發工具,後者則是coco…...

【ROS2】RViz2加载URDF模型文件
1、RViz2加载URDF模型文件 1)运行RViz2 rviz22)添加组件:RobotModel 3)选择通过文件添加 4)选择URDF文件,此时会报错,需要修改Fixed Frame为map即可 5)因为没有坐标转换,依然会报错,下面尝试解决 2、运行坐标转换节点 1)运行ROS节点:robot_state_publishe...

Unity导入特效,混合模式无效问题
检查spine导出设置与Unity导入设置是否一致 检查Blend Mode Materials是否勾选 检查是否使用导入时产生的对应混合模式的材质,混合模式不适用默认材质 这里选导入时生成的材质...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...

Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...

7种分类数据编码技术详解:从原理到实战
在数据分析和机器学习领域,分类数据(Categorical Data)的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型,如性别(男/女)、颜色(红/绿/蓝)或产品类…...
比较数据迁移后MySQL数据库和PostgreSQL数据仓库中的表
设计一个MySQL数据库和PostgreSQL数据库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较两…...