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

Python混淆矩阵用例

📜用例

  1. 📜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.钥匙和房间 题目链接&#xff1a;841.钥匙和房间 代码如下&#xff1a; class Solution { public:bool canVisitAllRooms(vector<vector<int>>& rooms) {vector<bool> visited(rooms.size(),false);dfs(rooms,visited,0);// bfs(rooms,visited,0)…...

【OceanBase 系列】—— 什么是冻结和转储

文章出处&#xff1a;OceanBase分布式数据库-海量数据 笔笔算数 本文主要介绍什么是冻结和转储。 适用版本 OceanBase 数据库所有版本。 冻结 冻结是指将 Active MEMTable 转化为 Frozen MEMTable 的过程。 冻结的触发方式 手动触发&#xff1a;alter system minor freeze…...

智慧园区能耗管控系统,3D可视化开发都需要哪些技术栈?

数据可视化&#xff1a; 数据可视化是将数据通过图表、图形、地图等可视化方式展示&#xff0c;使得数据更加直观、易于理解和分析。在智慧园区能耗管控系统中&#xff0c;可以使用各种图表库&#xff08;如Echarts、Highcharts&#xff09;和可视化工具&#xff08;如Tableau…...

Spring之推断构造方法源码解析

Spring之推断构造方法源码解析 简介 在Spring框架中&#xff0c;构造方法注入是一种常见的依赖注入方式。而在构造方法注入中&#xff0c;推断构造方法是一种特殊的方式&#xff0c;它可以根据参数类型自动选择合适的构造方法进行注入。本文将深入解析Spring框架中推断构造方…...

【计算机网络】计算机网络的定义和分类

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

天机学堂—学习辅助功能(含场景问答和作业)

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

Stable Diffusion AI绘画

我们今天来了解一下最近很火的SD模型 ✨在人工智能领域&#xff0c;生成模型一直是研究的热点之一。随着深度学习技术的飞速发展&#xff0c;一种名为Stable Diffusion的新型生成模型引起了广泛关注。Stable Diffusion是一种基于概率的生成模型&#xff0c;它可以学习数据的潜…...

linux性能监控之sar

1.sar命令介绍 sar是一个非常全面的分析工具&#xff0c;可以对文件的读写&#xff0c;系统调用的使用情况&#xff0c;磁盘IO&#xff0c;CPU相关使用情况&#xff0c;内存使用情况&#xff0c;进程活动等都可以进行有效的分析。 sar工具将对系统当前的状态进行取样&am…...

react框架对Excel文件进行上传和导出

1.首先需要安装xlsx第三方的库库 引入插件 npm install xlsx在react引入 import * as XLSX from xlsx;1&#xff0c;首先设置jsx部分的 以下代码包含有导入excel文件和导出excel文件&#xff0c;读着可以根据需要&#xff0c;自己选择想要实现的功能 代码如下&#xff0…...

【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】

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

【IC前端虚拟项目】验证环境env与base_teat思路与编写

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

使用Remix部署智能合约到币安链(Remix的操作介绍 币安链合约的部署) 点赞收藏哦

大家好&#xff0c;我是程序员大猩猩呀。 据我所知&#xff0c;很多人进入币圈之后&#xff0c;想要通过炒币一夜暴富&#xff01;另一部分人呢他们希望自己能创建一个项目&#xff0c;然后发行自己的数字货币然后暴富。 不管是什么方式吧&#xff0c;只要不违法&#xff0c;…...

为什么Redis6.0引入了多线程

Redis 6.0引入了多线程&#xff0c;主要原因有以下几点&#xff1a; 提高网络I/O的吞吐量&#xff1a;多线程可以更有效地处理大量的并发连接和请求&#xff0c;特别是在多核心服务器上。通过使用多线程来处理读写网络套接字&#xff0c;Redis能够更充分地利用系统资源&#x…...

速盾:高防ip和高防cdn有什么相同点?

高防IP&#xff08;Dedicated IP&#xff09;和高防CDN&#xff08;Content Delivery Network&#xff09;都是用来保护网站免受各种网络攻击的技术手段&#xff0c;它们在一定程度上具有相同的作用和效果。下面将详细介绍它们的相同点。 首先&#xff0c;高防IP和高防CDN都能…...

设计模式之拦截过滤器模式

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

【联通支付注册/登录安全分析报告】

联通支付注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨…...

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)

一、哈希映射&#xff08;HashMap&#xff09;简介 在计算机科学中&#xff0c;哈希映射&#xff08;HashMap&#xff09;是一种基于键值对&#xff08;Key-Value pair&#xff09;存储数据的数据结构&#xff0c;它提供了高效的数据查找、插入和删除操作。哈希映射的核心思想…...

EdgeRemover:Windows Edge浏览器彻底卸载的智能方案 - 释放系统资源新方法

EdgeRemover&#xff1a;Windows Edge浏览器彻底卸载的智能方案 - 释放系统资源新方法 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover 核心价值定位 用…...

Studio 3T 2026.6 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

Studio 3T 2026.6 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端 The Ultimate GUI, IDE and client for MongoDB 请访问原文链接&#xff1a;https://sysin.org/blog/studio-3t/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sy…...

边缘计算那些事儿——从协同视角看卸载策略

1. 边缘计算卸载技术入门指南 第一次听说"边缘计算卸载"这个概念时&#xff0c;我正被一个智能家居项目搞得焦头烂额。当时需要在摄像头端做人脸识别&#xff0c;但嵌入式设备的算力根本跑不动深度学习模型。直到同事提醒&#xff1a;"为什么不试试把计算任务卸…...

Cisco Packet Tracer新手必看:5分钟搞定路由器静态路由配置(附避坑指南)

Cisco Packet Tracer静态路由配置实战&#xff1a;从零到精通的完整指南 刚接触网络工程的朋友们&#xff0c;第一次在Cisco Packet Tracer中配置静态路由时&#xff0c;是不是经常遇到"网络不通"的困扰&#xff1f;作为网络通信的基础技能&#xff0c;静态路由配置看…...

大脑极简原理:比冯·诺依曼架构还简单的电磁路由网络 ——为什么意识和智能会从“对称判断”里自然涌现

前言&#xff1a;被复杂化的真相——大脑其实简单到爆我们从小被灌输一个观念&#xff1a;大脑是宇宙中最复杂的系统&#xff0c;860亿神经元、百万亿突触、无数神经递质&#xff0c;像一台精密到无法拆解的超级计算机。神经科学论文越写越长&#xff0c;模型越来越复杂&#x…...

Swin2SR惊艳效果展示:低清草稿图秒变4K高清作品集

Swin2SR惊艳效果展示&#xff1a;低清草稿图秒变4K高清作品集 你有没有遇到过这种情况&#xff1f;一张特别有感觉的AI生成图&#xff0c;可惜分辨率太低&#xff0c;放大后全是马赛克&#xff1b;一张珍贵的旧照片&#xff0c;像素模糊得看不清人脸&#xff1b;或者从网上找到…...

CentOS7 下 Go 多版本管理与无缝升级指南

1. 为什么需要Go多版本管理&#xff1f; 在CentOS7系统上开发Go项目时&#xff0c;经常会遇到这样的尴尬&#xff1a;新项目需要用最新版Go的特性&#xff0c;而老项目必须跑在特定旧版本上才能兼容。我去年就踩过这个坑——用Go 1.21写完的微服务&#xff0c;部署到生产环境发…...

OpCore-Simplify:终极OpenCore EFI配置自动化解决方案

OpCore-Simplify&#xff1a;终极OpenCore EFI配置自动化解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而烦恼吗&am…...

HRNet的‘并行多分支’到底强在哪?一个动画图解带你彻底搞懂特征融合机制

HRNet并行多分支架构的视觉化解析&#xff1a;如何通过双向特征融合突破关键点检测精度瓶颈 在计算机视觉领域&#xff0c;关键点检测任务&#xff08;如人体姿态估计、人脸特征点定位&#xff09;对空间精度的要求近乎苛刻。传统卷积神经网络通过层层下采样提取语义特征的代价…...

离网逆变器下垂控制实战:从公式推导到MATLAB仿真(附资源下载)

离网逆变器下垂控制实战&#xff1a;从公式推导到MATLAB仿真 在新能源发电系统中&#xff0c;离网逆变器的稳定运行至关重要。传统电压电流双闭环控制虽然简单直接&#xff0c;但在面对复杂负载变化时&#xff0c;往往会出现电压跌落、频率失稳等问题。下垂控制技术通过模拟同…...