Python----机器学习(模型评估:准确率、损失函数值、精确度、召回率、F1分数、混淆矩阵、ROC曲线和AUC值、Top-k精度)

一、模型评估 

1. 准确率(Accuracy):这是最基本的评估指标之一,表示模型在测试集上正确 分类样本的比例。对于分类任务而言,准确率是衡量模型性能的直观标准。

2. 损失函数值(Loss):观察模型在测试集上的损失函数值,可以帮助了解模型的 泛化能力。低损失值表明模型在未见过的数据上的表现较好。

3. 精确度(Precision):精确度是指所有被模型预测为正类的样本中实际为正类 的比例。它关注的是预测为正类的准确性。

4. 召回率(Recall):召回率是指所有实际为正类的样本中被模型正确识别为正类 的比例。它反映了模型识别出所有正类的能力。

5. F1分数(F1 Score):F1分数是精确度和召回率的调和平均值,适用于需要同时 考虑精确度和召回率的情况,特别是在类别分布不均衡时更为有用。

6. 混淆矩阵(Confusion Matrix):这是一个表格,展示了分类模型预测结果与 真实标签之间的比较,可以从中计算出精确度、召回率等指标。

7. ROC曲线和AUC值(Receiver Operating Characteristic Curve and Area Under the Curve):ROC曲线通过描绘不同阈值下的真正率(True Positive Rate, TPR)与假正率(False Positive Rate, FPR),来评估二分类模型的性能。 AUC(曲线下面积)是ROC曲线下的面积,其值范围从0到1,AUC值越接近1, 表示模型的分类性能越好。

8. Top-k精度:在多分类任务中,有时会考虑模型预测的前k个最可能类别中是否包 含正确答案,这种情况下会用到Top-k精度作为评估指标。

二、准确率(Accuracy)

        这是最基本的评估指标之一,表示模型在测试集上正确分类样本的比例。对于分类任 务而言,准确率是衡量模型性能的直观标准。

特点:

  • 直观但受类别不平衡影响大

三、损失函数值(Loss)

        模型预测结果与真实标签的差异量化值

四、精确度(Precision)

        预测为正类的样本中实际为正类的比例

五、召回率(Recall)

        实际为正类的样本中被正确预测的比例

六、F1分数(F1 Score)

        F1 分数是精确度(Precision)和召回率(Recall)的调和平均数,它综合考虑了模 型的预测精度和覆盖率。

七、混淆矩阵(Confusion Matrix)

        是一个表格,展示了分类模型预测结果与真实标签之间的比较,可以从中计算出精 确度、召回率等指标。

预测类别1预测类别2
真实类别1TPFN
真实类别2FPTN

八、ROC曲线和AUC值

        ROC曲线通过描绘不同阈值下的真正率(True Positive Rate, TPR)与假正率(False Positive Rate, FPR),来评估二分类模型的性能。AUC(曲线下面积)是ROC曲线 下的面积,其值范围从0到1,AUC值越接近1,表示模型的分类性能越好。

8.1、ROC曲线

        以假正率(FPR)为横轴,真正率(TPR)为纵轴的曲线

8.2、AUC值

        ROC曲线下的面积

九、Top-k精度

        模型预测概率前k高的类别中包含真实标签的比例

指标优点局限性适用场景
准确率直观易理解类别不平衡时失效平衡数据集
F1分数平衡精确度与召回率仅关注单一类别(二分类)不均衡数据、二分类任务
AUC不受阈值影响仅适用于二分类类别不平衡的二分类任务
Top-k精度容错性强计算复杂度高细粒度分类任务
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, roc_auc_score, top_k_accuracy_score# 真实标签与预测结果
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
y_proba = [[0.7, 0.2, 0.1],[0.1, 0.3, 0.6],[0.3, 0.4, 0.3],[0.8, 0.1, 0.1],[0.6, 0.2, 0.2],[0.2, 0.5, 0.3]]# 计算各项指标
print("准确率:", accuracy_score(y_true, y_pred))
print("精确度(宏平均):", precision_score(y_true, y_pred, average='macro'))
print("召回率(宏平均):", recall_score(y_true, y_pred, average='macro'))
print("F1分数(宏平均):", f1_score(y_true, y_pred, average='macro'))
print("混淆矩阵:\n", confusion_matrix(y_true, y_pred))
print("Top-2精度:", top_k_accuracy_score(y_true, y_proba, k=2))# 二分类场景下的AUC计算示例
y_true_binary = [0, 1, 1, 0]
y_proba_binary = [0.1, 0.9, 0.8, 0.3]
print("AUC值:", roc_auc_score(y_true_binary, y_proba_binary))

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

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

相关文章

cdn 是什么?

内容分发网络,Content Delivery Network 介绍 CDN(Content Delivery Network)是一种将内容分发到靠近用户的边缘服务器,以加速访问速度、减少延迟、降低源站压力的网络系统。 CDN 把网站的静态资源(如 HTML、JS、CSS、…

BUCK基本原理学习总结-20250509

一、电感伏秒平衡特性 处于稳定状态的电感,开关导通时间(电流上升段)的伏秒数须与开关关断(电流下降段)时的伏秒数在数值上相等,尽管两者符号相反。这也表示,绘出电感电压对时间的曲线,导通时段曲线的面积必须等于关断时段曲线的面积。 二、BUCK的基本概念和原理 基…

【K8S系列】Kubernetes常用 命令

以下为的 Kubernetes 超全常用命令文档,涵盖集群管理、资源操作、调试排错等核心场景,结合示例与解析, 高效运维 Kubernetes 环境。 一、集群与节点管理 1. 集群信息查看 查看集群基本信息kubectl cluster-info # 显示API Server、DNS等核…

【Django】REST 常用类

ModelSerializer serializers.ModelSerializer 是 Django REST framework(DRF)里的一个强大工具,它能极大简化序列化和反序列化 Django 模型实例的流程。下面从多个方面详细介绍它: 1. 基本概念 序列化是把 Django 模型实例转化…

GuassDB如何创建兼容MySQL语法的数据库

GaussDB简介 GaussDB是由华为推出的一款全面支持OLTP和OLAP的分布式关系型数据库管理系统。它采用了分布式架构和高可靠性设计,可以满足大规模数据存储和处理的需求。GaussDB具有高性能、高可靠性和可扩展性等特点,适用于各种复杂的业务场景&#xff0c…

【无标题】I/O复用(epoll)三者区别▲

一、SOCKET-IO复用技术 定义:SOCKET - IO复用技术是一种高效处理多个套接字(socket)的手段,能让单个线程同时监听多个文件描述符(如套接字)上的I/O事件(像可读、可写、异常)&#x…

spring中的@Qualifier注解详解

1. 核心作用 Qualifier是Spring框架中用于解决依赖注入歧义性的关键注解。当容器中存在多个相同类型的Bean时,Autowired默认按类型自动装配会抛出NoUniqueBeanDefinitionException异常,此时通过Qualifier指定Bean的唯一标识符(名称或自定义限…

Python爬虫实战:获取文学网站四大名著并保存到本地

一、引言 1.1 研究背景 中国古典四大名著承载着深厚的文化底蕴,是中华民族的宝贵精神财富。在互联网时代,网络文学资源虽丰富多样,但存在分散、质量参差不齐等问题 。部分文学网站存在访问限制、资源缺失等情况,用户难以便捷获取完整、高质量的经典著作内容。开发专业的爬…

【一】浏览器的copy as fetch和copy as bash的区别

浏览器的copy as fetch和copy as bash的区别 位置:devTools->network->请求列表右键 copy as fetch fetch("https://www.kuaishou.com/graphql", {"headers": {"accept": "*/*","accept-language": &qu…

渠道销售简历模板范文

模板信息 简历范文名称:渠道销售简历模板范文,所属行业:其他 | 职位,模板编号:KRZ3J3 专业的个人简历模板,逻辑清晰,排版简洁美观,让你的个人简历显得更专业,找到好工作…

Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合

随着城市化进程加速,空气质量监测与污染溯源成为智慧城市建设的核心议题。传统监测手段受限于数据离散性、分析滞后性及可视化能力不足,难以支撑实时决策。2025年4月27日发布的《Java大数据可视化在城市空气质量监测与污染溯源中的应用》一文&#xff0c…

《面向对象程序设计-C++》实验五 虚函数的使用及抽象类

程序片段编程题 1.【问题描述】 基类shape类是一个表示形状的抽象类&#xff0c;area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类&#xff08;circles&#xff09;、并给出具体的求面积函数。注&#xff1a;圆周率取3.14 #include<iostream> #in…

用c语言实现——一个交互式的中序线索二叉树系统,支持用户动态构建、线索化、遍历和查询功能

知识补充&#xff1a;什么是中序线索化 中序遍历是什么 一、代码解释 1.结构体定义 Node 结构体&#xff1a; 成员说明&#xff1a; int data&#xff1a;存储节点的数据值。 struct Node* lchild&#xff1a;该节点的左孩子 struct Node* rchild&#xff1a;该节点的右孩子…

高拟人化客服机器人显著提升用户接受度

高拟人化客服机器人显著提升用户接受度 目录 高拟人化客服机器人显著提升用户接受度思维导图详细总结一、研究背景与目的二、理论基础与变量设计三、研究方法与实验设计四、核心结论与策略建议五、研究局限与未来方向关键问题与答案高拟人化客服机器人显著提升用户接受度,且与…

202534 | KafKa简介+应用场景+集群搭建+快速入门

Apache Kafka 简介 一、什么是 Kafka&#xff1f; Apache Kafka 是一个高吞吐量、分布式、可扩展的流处理平台&#xff0c;用于构建实时数据管道和流应用程序。它最初由 LinkedIn 开发&#xff0c;并于 2011 年开源&#xff0c;目前由 Apache 软件基金会进行维护。 Kafka 具备…

Blender 初学者指南 以及模型格式怎么下载

glbxz.com glbxz.com 可以直接下载Blender格式模型 第 1 步&#xff1a;打开 这就是 blender 打开时的样子。 您面对的是左侧和右侧的工具栏&#xff0c;顶部是文件作&#xff0c;底部是时间轴&#xff0c;中间是 3D 视图。 Blender 的默认起始网格是一个立方体&#xff0c…

RV1126 ROS2环境交叉编译及部署(基于官方Docker)

RV1126 ROS2环境交叉编译及部署(基于官方Docker) 0 前言1 SDK源码更新1.1 启动Docker容器1.2 更新SDK源码1.3 SDK更新问题2 ROS2编译配置3 Buildroot rootfs编译ROS2的依赖包3.1 编译问题解决4 使用Docker交叉编译ROS24.1 准备Linux(Ubuntu) PC机的依赖环境4.1.1 Ubuntu PC机…

Go 面向对象,封装、继承、多态

Go 面向对象&#xff0c;封装、继承、多态 经典OO&#xff08;Object-oriented 面向对象&#xff09;的三大特性是封装、继承与多态&#xff0c;这里我们看看Go中是如何对应的。 1. 封装 封装就是把数据以及操作数据的方法“打包”到一个抽象数据类型中&#xff0c;这个类型…

无线网络设备中AP和AC是什么?有什么区别?

无线网络设备中AP和AC是什么&#xff1f;有什么区别&#xff1f; 一. 什么是AP&#xff1f;二. 什么是AC&#xff1f;三. AP与AC的关系 前言 肝文不易&#xff0c;点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有惊喜。 作者&#xff1a;神的孩子都…

Android SDK

Windows纯净卸载Android SDK 1.关闭所有安卓相关的程序 Android StudioEmulators 如模拟器Command prompts using SDK 如appium服务 2.移除SDK相关目录 # Delete your SDK directory F:\android_sdk\android-sdk-windows# Also check and remove if present: $env:LOCALAPP…