Python混淆矩阵用例
📜用例
- 📜Python社群纽带关系谱和图神经 | 📜多标签混淆矩阵模型 | 📜二元分类分层混淆矩阵模型 | 📜混淆矩阵评估特征归因
✒️梗概
混淆矩阵是评估分类模型性能的有用工具。 该矩阵通过将预测值与实际值进行比较,可以深入了解模型对数据进行分类的程度。 理解和解释混淆矩阵可能具有挑战性,特别是对于机器学习的初学者来说。 然而,理解每个单元代表的内容至关重要,因为它可以帮助您评估模型的优点和缺点。
我们将使用 Python 中的 Scikit-learn 库深入讨论混淆矩阵。 我们将带您了解混淆矩阵到底是什么、为什么它很重要以及如何有效地解释其结果。 此外,我们将引导您构建一个简单的机器学习模型,作为示例,该模型根据花卉的测量值对花卉种类进行分类。
混淆矩阵是用于评估机器学习算法性能的表格。它显示了算法在每个类别中正确或错误分类的样本数量。混淆矩阵有两个维度:实际维度和预测维度。在二元分类中,只有两个类(正类和负类),它看起来像这样:
Predicted Positive Predicted Negative Actual Positive True Positive (TP) False Negative (FN) Actual Negative False Positive (FP) True Negative (TN) \begin{array}{|l|c|l|} \hline & \text { Predicted Positive } & \text { Predicted Negative } \\ \hline \text { Actual Positive } & \text { True Positive (TP) } & \text { False Negative (FN) } \\ \hline \text { Actual Negative } & \text { False Positive (FP) } & \text { True Negative (TN) } \\ \hline \end{array} Actual Positive Actual Negative Predicted Positive True Positive (TP) False Positive (FP) Predicted Negative False Negative (FN) True Negative (TN)
让我们考虑一个二元分类问题,其中有两个类:“正”和“负”。
- 真正例(TP):这是指模型在实际情况下正确预测实例属于正类。换句话说,TP是指被模型正确预测为正例的正例实例的数量。
- 真负例(TN):这是指模型在实际情况下正确预测实例属于负类。换句话说,TN是指被模型正确预测为负例的负例数量。
- 假负例(FP):这是指模型错误地预测某个实例属于正类,而实际上它属于负类。 换句话说,FP指的是被模型错误预测为正例的负例的数量。
- 假负例(FN):这是指模型错误地预测某个实例属于负类,而实际上它属于正类。 换句话说,FN 指的是被模型错误预测为负例的正例数量。
混淆矩阵是机器学习中评估分类模型性能的常用工具。以下是一些现实世界或业务用例,混淆矩阵可能会有所帮助:
- 欺诈检测:银行使用机器学习模型来识别欺诈交易。 混淆矩阵通过显示真阳性、真阴性、假阳性和假阴性的数量,帮助银行了解模型的执行情况
- 医疗诊断:医院使用机器学习模型来诊断患有某种疾病的患者。 混淆矩阵通过显示真阳性、真阴性、假阳性和假阴性的数量,帮助医生了解模型的准确性。
- 客户流失预测:公司使用机器学习模型来预测哪些客户可能会流失(停止使用他们的服务)。 混淆矩阵通过显示真阳性、真阴性、假阳性和假阴性的数量,帮助公司了解模型的表现如何。
- 情绪分析:社交媒体平台使用机器学习模型来分析用户评论并确定它们是正面还是负面。 混淆矩阵通过显示真阳性、真阴性、假阳性和假阴性的数量,帮助平台了解模型的准确性。
- 图像分类:电子商务网站使用机器学习模型自动将产品图像分类为不同类别,例如服装或电子产品。 混淆矩阵通过显示每个类别的真阳性、真阴性、假阳性和假阴性的数量,帮助他们了解图像分类算法的执行情况。
让我们看一个对 Scikit-Learn 的乳腺癌数据集进行二元分类的示例。
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrixdata = load_breast_cancer()X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, random_state=0)model = LogisticRegression()
model.fit(X_train, y_train)y_pred = model.predict(X_test)cm = confusion_matrix(y_test, y_pred)print("Confusion Matrix:")
print(cm)
使用Scikit-Learn中的confusion_matrix只会显示混淆矩阵的Numpy数组,但如果想绘制它,我们可以使用Scikit-Learn中的plot_confusion_matrix函数,如下所示:
from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(model, X_test, y_test)
这将使用 Matplotlib 输出混淆矩阵图:
现在让我们探讨一个使用多个类(而不仅仅是 2 个二元类)的混淆矩阵的示例。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix, plot_confusion_matrix
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as pltiris = load_iris()
X = iris.data
y = iris.targetX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)y_pred = clf.predict(X_test)cm = confusion_matrix(y_test, y_pred)
plot_confusion_matrix(clf, X_test, y_test)
行代表真实类别,列代表预测类别。 对角线元素(从左上到右下)显示每个类别的正确预测数量。 非对角线元素显示错误分类。 例如,在我们的例子中,我们可以看到 0 类的 15 个样本被正确预测,没有错误,但是我们可以看到 1 类有两个错误分类为 2 类。
参阅:亚图跨际
相关文章:
Python混淆矩阵用例
📜用例 📜Python社群纽带关系谱和图神经 | 📜多标签混淆矩阵模型 | 📜二元分类分层混淆矩阵模型 | 📜混淆矩阵评估特征归因 ✒️梗概 混淆矩阵是评估分类模型性能的有用工具。 该矩阵通过将预测值与实际值进行比较&…...

【负载均衡式在线OJ项目day6】源文件路由功能及文件版题库构建
一.前言 前文讲到了OJ模块的设计思路,毫无疑问这是一个网络服务,我们先使用httplib,将源文件的路由功能实现,先把框架写好,后续再更改回调方法。 随后计划编写Modify模块,提供增删查改题库的功能(主要是查…...
841.钥匙和房间
841.钥匙和房间 题目链接:841.钥匙和房间 代码如下: class Solution { public:bool canVisitAllRooms(vector<vector<int>>& rooms) {vector<bool> visited(rooms.size(),false);dfs(rooms,visited,0);// bfs(rooms,visited,0)…...
【OceanBase 系列】—— 什么是冻结和转储
文章出处:OceanBase分布式数据库-海量数据 笔笔算数 本文主要介绍什么是冻结和转储。 适用版本 OceanBase 数据库所有版本。 冻结 冻结是指将 Active MEMTable 转化为 Frozen MEMTable 的过程。 冻结的触发方式 手动触发:alter system minor freeze…...

智慧园区能耗管控系统,3D可视化开发都需要哪些技术栈?
数据可视化: 数据可视化是将数据通过图表、图形、地图等可视化方式展示,使得数据更加直观、易于理解和分析。在智慧园区能耗管控系统中,可以使用各种图表库(如Echarts、Highcharts)和可视化工具(如Tableau…...
Spring之推断构造方法源码解析
Spring之推断构造方法源码解析 简介 在Spring框架中,构造方法注入是一种常见的依赖注入方式。而在构造方法注入中,推断构造方法是一种特殊的方式,它可以根据参数类型自动选择合适的构造方法进行注入。本文将深入解析Spring框架中推断构造方…...

【计算机网络】计算机网络的定义和分类
🚩本文已收录至专栏:计算机网络学习之旅 一.定义 计算机网络并没有一个精确和统一的定义,在计算机网络发展的不同阶段,人们对计算机网络给出了不同的定义,这些定义反映了当时计算机网络技术的发展水平。 例如计算机…...

天机学堂—学习辅助功能(含场景问答和作业)
我的课表 需求分析 原型图 管理后台 用户端 流程图 数据设计 接口设计 支付成功报名课程后, 加入到我的课表(MQ)分页查询我的课表查询我正在学习的课程根据id查询指定课程的学习状态删除课表中的某课程 代码实现 数据表设计 添加课程到课表(非标准接口&#x…...

Stable Diffusion AI绘画
我们今天来了解一下最近很火的SD模型 ✨在人工智能领域,生成模型一直是研究的热点之一。随着深度学习技术的飞速发展,一种名为Stable Diffusion的新型生成模型引起了广泛关注。Stable Diffusion是一种基于概率的生成模型,它可以学习数据的潜…...
linux性能监控之sar
1.sar命令介绍 sar是一个非常全面的分析工具,可以对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可以进行有效的分析。 sar工具将对系统当前的状态进行取样&am…...
react框架对Excel文件进行上传和导出
1.首先需要安装xlsx第三方的库库 引入插件 npm install xlsx在react引入 import * as XLSX from xlsx;1,首先设置jsx部分的 以下代码包含有导入excel文件和导出excel文件,读着可以根据需要,自己选择想要实现的功能 代码如下࿰…...

【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】
目录 前端文件操作与文件上传前端接受后端传输文件指南 前端文件操作与文件上传 一、前端文件上传有两种思路: 二进制blob传输:典型案例是formData传输,相当于用formData搭载二进制的blob传给后端base64传输:转为base64传输&…...

【IC前端虚拟项目】验证环境env与base_teat思路与编写
【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 上一篇里解决了最难搞的axi_ram_model,接下来呢就会简单又常规一些了,比如这一篇要说的env和base_test的搭建。在这里我用了gen_uvm_tb脚本: 【前端验证】验证自动化脚本的最后一块拼图补全——gen_t…...

使用Remix部署智能合约到币安链(Remix的操作介绍 币安链合约的部署) 点赞收藏哦
大家好,我是程序员大猩猩呀。 据我所知,很多人进入币圈之后,想要通过炒币一夜暴富!另一部分人呢他们希望自己能创建一个项目,然后发行自己的数字货币然后暴富。 不管是什么方式吧,只要不违法,…...
为什么Redis6.0引入了多线程
Redis 6.0引入了多线程,主要原因有以下几点: 提高网络I/O的吞吐量:多线程可以更有效地处理大量的并发连接和请求,特别是在多核心服务器上。通过使用多线程来处理读写网络套接字,Redis能够更充分地利用系统资源&#x…...
速盾:高防ip和高防cdn有什么相同点?
高防IP(Dedicated IP)和高防CDN(Content Delivery Network)都是用来保护网站免受各种网络攻击的技术手段,它们在一定程度上具有相同的作用和效果。下面将详细介绍它们的相同点。 首先,高防IP和高防CDN都能…...

设计模式之拦截过滤器模式
想象一下,在你的Java应用里,每个请求就像一场冒险旅程,途中需要经过层层安检和特殊处理。这时候,拦截过滤器模式就化身为你最可靠的特工团队,悄无声息地为每一个请求保驾护航,确保它们安全、高效地到达目的…...

【联通支付注册/登录安全分析报告】
联通支付注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨…...
c++ - 在循环中使用迭代器删除 unordered_set 中的元素
标签 c unordered-set 请考虑以下代码: Class MyClass 为自定义类:class MyClass { public:MyClass(int v) : Val(v) {}int Val; };然后下面的代码将在调用 it T.erase(it); 之后在循环中导致 Debug Assertion Failed: unordered_set<MyClass*> T; unordered_set<…...
深入了解哈希映射(HashMap)
一、哈希映射(HashMap)简介 在计算机科学中,哈希映射(HashMap)是一种基于键值对(Key-Value pair)存储数据的数据结构,它提供了高效的数据查找、插入和删除操作。哈希映射的核心思想…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...