机器学习详解(11):分类任务的模型评估标准

news2025/1/4 14:45:13

模型评估是利用不同的评估指标来了解机器学习模型的性能,以及其优势和劣势的过程。评估对于确保机器学习模型的可靠性、泛化能力以及在新数据上的准确预测能力至关重要。

文章目录

  • 1 介绍
  • 2 评估准则
  • 3 分类指标
    • 3.1 准确率 (Accuracy)
    • 3.2 精确率 (Precision)
    • 3.3 召回率 (Recall)
    • 3.4 F1 分数 (F1-Score)
    • 3.5 ROC曲线与AUC
  • 4 总结

1 介绍

过拟合和欠拟合是导致机器学习算法性能不佳的两个主要原因。

  • 过拟合:模型在训练数据上表现得非常好,但对新数据泛化能力很差。模型过于复杂,捕捉了数据中的噪声和无关信息,而非真正的规律。
  • 欠拟合:模型过于简单,未能从训练数据中学习到充分的模式和规律,导致训练集和测试集上的性能都很差。

在这里插入图片描述

以下是过拟合和欠拟合的对比:

特性过拟合欠拟合
模型复杂度过高过低
训练集性能极好较差
测试集性能较差较差
原因学习了数据中的噪声和细节未能充分学习数据中的规律
解决方法简化模型、正则化、增加数据量、早停增加模型复杂度、延长训练时间、优化特征

2 评估准则

评估指标根据分类、回归、排序、聚类、主题建模等任务的不同而有所不同。以下是一些常见的指标:

  • 分类指标:Accuracy, Precision, Recall, F1-score, ROC, AUC 等
  • 回归指标:MSE, MAE, R²
  • 排序指标:MRR, DCG, NDCG
  • 统计指标:Correlation
  • 计算机视觉指标:PSNR, SSIM, IoU
  • 自然语言处理指标:Perplexity, BLEU 分数
  • 深度学习相关指标:Inception 分数, Frechet Inception 距离

本篇文章,我们将讨论分类指标

3 分类指标

当目标变量是类别型时,我们面对的是分类问题。选择最合适的指标取决于不同的因素,例如数据集的特性(是否存在类别不平衡)以及分析目标等。

混淆矩阵 (Confusion Matrix)

混淆矩阵是一种用于衡量分类模型性能的工具。通过对预测值和实际值的比较,将结果划分为以下四种情况:

  • T P TP TP (True Positive):模型预测为正类,实际也为正类。
  • T N TN TN (True Negative):模型预测为负类,实际也为负类。
  • F P FP FP (False Positive):模型预测为正类,实际为负类(误报)。
  • F N FN FN (False Negative):模型预测为负类,实际为正类(漏报)。

在这里插入图片描述

分类模型的性能可以通过以下指标进行评估。 根据混淆矩阵有准确率、精确率和召回率几个定义,假设 T P = 10 , T N = 12 , F P = 1 , F N = 2 TP = 10, TN = 12, FP = 1, FN = 2 TP=10,TN=12,FP=1,FN=2,我们下面介绍一下这几个定义,并在例子中据此数据计算。

3.1 准确率 (Accuracy)

准确率表示所有预测中正确预测的比例,公式为: A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = \frac{TP + TN}{TP + TN + FP + FN} Accuracy=TP+TN+FP+FNTP+TN

例: A c c u r a c y = 10 + 12 10 + 12 + 1 + 2 = 88 % Accuracy = \frac{10 + 12}{10 + 12 + 1 + 2} = 88\% Accuracy=10+12+1+210+12=88%

  • 通俗解释:老师判卷子时,看所有题中有多少题答对了,比如答对了88%,准确率就是88%。
  • 局限性:当类别分布不平衡时,准确率可能会误导。例如,若正类占比很低,仅预测所有数据为负类也可能获得高准确率。

3.2 精确率 (Precision)

精确率衡量预测为正类中实际为正类的比例,公式为: P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP} Precision=TP+FPTP

例: P r e c i s i o n = 10 10 + 1 = 91 % Precision = \frac{10}{10 + 1} = 91\% Precision=10+110=91%

  • 通俗解释:医生诊断病人时,关注确诊为病的人里有多少是真正生病的,比如确诊10个,9个真生病了,精确率是90%。
  • 适用场景:当误报的代价较高时(如医疗诊断中的误报),需要关注精确率。

3.3 召回率 (Recall)

召回率衡量实际为正类中被正确预测为正类的比例,公式为: R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN} Recall=TP+FNTP

例: R e c a l l = 10 10 + 2 = 83 % Recall = \frac{10}{10 + 2} = 83\% Recall=10+210=83%

  • 通俗解释:警察追逃犯时,关注所有逃犯里抓住了多少,比如有12个逃犯,抓住了10个,召回率是83%。
  • 适用场景:当漏报的代价较高时(如安全检测中的漏报),需要关注召回率。

3.4 F1 分数 (F1-Score)

F 1 F1 F1 分数是精确率和召回率的调和平均,用于综合考虑两者的表现,公式为: F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} F1=2Precision+RecallPrecisionRecall

例: 已知 P r e c i s i o n = 91 % Precision = 91\% Precision=91%, R e c a l l = 83 % Recall = 83\% Recall=83%,则 F 1 = 2 ⋅ 0.91 ⋅ 0.83 0.91 + 0.83 = 0.87 F1 = 2 \cdot \frac{0.91 \cdot 0.83}{0.91 + 0.83} = 0.87 F1=20.91+0.830.910.83=0.87

  • 适用场景:在搜索引擎中既要确保返回结果相关(精确率),又要尽可能多覆盖目标(召回率)。

3.5 ROC曲线与AUC

ROC(Receiver Operating Characteristic)曲线是一种用于评估分类模型性能的图形工具,特别是在二分类任务中非常常用。它通过显示模型在不同阈值下的分类能力来帮助理解模型的区分能力。ROC曲线绘制了以下两个指标之间的关系:

  • True Positive Rate (TPR):真阳性率,也称为敏感度(Recall),公式为: $ TPR = \frac{TP}{TP + FN} $

  • False Positive Rate (FPR):假阳性率,公式为: $ FPR = \frac{FP}{FP + TN} $

通过调整分类阈值,模型在不同的TPR和FPR之间取得平衡,绘制成ROC曲线。

ROC Curve

  • 不同阈值对应的点在图上不一定连续,而是通过将所有可能的阈值下的 T P R TPR TPR F P R FPR FPR 计算出来的离散点连接起来形成的曲线。

AUC (Area Under the Curve)
AUC表示ROC曲线下的面积,值范围为0到1:

  • AUC = 1:理想模型,能完美区分正负样本。
  • AUC = 0.5:随机猜测模型,无分类能力。
  • AUC < 0.5:分类性能低于随机模型(可能因模型异常或标签反转)。

AUC value

优点

  • 不受类别不平衡影响。
  • 提供模型在不同阈值下的整体性能概览。

4 总结

模型评估是确保机器学习模型性能可靠和泛化能力强的关键步骤。通过准确率、精确率、召回率、F1分数和ROC-AUC等指标,能够全面了解分类模型的表现及其在不同场景下的优劣势。选择合适的评估指标,结合实际需求和任务特性,是构建高效模型的核心。

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

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

相关文章

天天跳绳(???)

广东省人民政府门户网站 https://www.gd.gov.cn/zwgk/zdlyxxgkzl/whjg/content/post... 二沙岛变身智能“运动岛” - 广东省人民政府门户网站 2020年10月20日  广州二沙岛&#xff0c;犹如一颗璀璨明珠点缀在珠江之心&#xff0c;自然风光旖旎&#xff0c;功能分区清 … 公共…

2025元旦源码免费送

我们常常在当下感到时间慢&#xff0c;觉得未来遥远&#xff0c;但一旦回头看&#xff0c;时间已经悄然流逝。对于未来&#xff0c;尽管如此&#xff0c;也应该保持一种从容的态度&#xff0c;相信未来仍有许多可能性等待着我们。 免费获取源码。 更多内容敬请期待。如有需要可…

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…

DAC8562的详细介绍

DAC8562的详细介绍 DAC8562是一款由德州仪器(Texas Instruments, TI)生产的高精度、低功耗的数模转换器(DAC),专为工业自动化、仪器仪表、医疗设备及消费电子等应用设计。以下是关于DAC8562芯片的详细介绍: DAC8562芯片的SPI接口配置主要包括以下几个方面:

计算机找不到xinput1_3.dll无法执行怎么办?电脑缺失xinput1_3.dll文件怎么修复?

当计算机提示找不到xinput1_3.dll文件&#xff0c;导致某些程序或游戏无法执行时&#xff0c;可以采取以下步骤来修复这个问题&#xff1a; 一、了解xinput1_3.dll文件 xinput1_3.dll是Microsoft DirectX for Windows的控制模块&#xff0c;它包含了一组函数和数据结构&#…

如何在谷歌浏览器中设置屏幕保护

在日常使用电脑的过程中&#xff0c;屏幕保护功能是一项非常实用的功能&#xff0c;它可以在我们暂时离开时保护隐私并节省能源。对于谷歌浏览器用户来说&#xff0c;了解如何设置和调整屏幕保护程序同样重要。本文将详细介绍如何在谷歌浏览器中设置屏幕保护&#xff0c;确保您…

mybatis 和 mybatisPlus 兼容性问题

项目采用的是 mybatis&#xff0c; 后续引入了 mybatisPlus&#xff0c;用 mybatisX 创建的四个类一直报错&#xff0c;提示找不到符号&#xff0c;意识到 mybatis 和 mybatisPlus 的兼容性问题&#xff0c;通过修改配置 两者的配置如下 #配置mybatis配置 mybatis:type-aliase…

WPF中数据绑定模式解析

背景&#xff1a;复习一下 -- 写的代码界面大概就是这样&#xff0c;TextBox和Slider空间&#xff0c;TextBox的Text属性绑定上Slider控件的Value。 Mode中的 1.OneTiem&#xff0c;Slider对TextBox中的数值只影响一次 2.OneWay&#xff0c;Slider对TextBox数值单向影响 3.One…

树莓派OpenWrt下怎么驱动带USB的摄像头

环境&#xff1a;使用VirtualBox虚拟机下安装的ubuntu22.04 LTS操作系统 安装编译需要的插件&#xff1a; sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache cmake cpio curl device-tree-compiler fas…

百度热力图数据获取,原理,处理及论文应用

目录 0、示例数据1、百度热力图数据日期如何选择1.1、看日历1.2、看天气 2、百度热力图几天够研究&#xff1f;部分文章统计3、数据原理3.1.1 定位都包含哪些数据&#xff1f;3.1.2 ** 这个比较重要&#xff0c;后面还会再次出现。核密度的值怎么理解&#xff1f;**3.1.3 Csv-&…

如何确保Kafka集群的高可用?

大家好&#xff0c;我是锋哥。今天分享关于【如何确保Kafka集群的高可用&#xff1f;】面试题。希望对大家有帮助&#xff1b; 如何确保Kafka集群的高可用&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 要确保 Kafka 集群 的高可用性&#xff0c;需要…

【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素

目录 1 -> Builder 2 -> BuilderParam8 2.1 -> 引入动机 2.2 -> 参数初始化组件 2.3 -> 尾随闭包初始化组件 3 -> Styles 4 -> Extend 5 -> CustomDialog 1 -> Builder 可通过Builder装饰器进行描述&#xff0c;该装饰器可以修饰一个函数&…

理解生成协同促进?华为诺亚提出ILLUME,15M数据实现多模态理解生成一体化

多模态理解与生成一体化模型&#xff0c;致力于将视觉理解与生成能力融入同一框架&#xff0c;不仅推动了任务协同与泛化能力的突破&#xff0c;更重要的是&#xff0c;它代表着对类人智能&#xff08;AGI&#xff09;的一种深层探索。通过在单一模型中统一理解与生成&#xff…

用再生龙备份和还原操作系统(二)

续上篇&#xff1a;用再生龙备份和还原操作系统&#xff08;一&#xff09; 二&#xff0c;用再生龙制作硬盘备份文件&#xff08;也叫镜像文件&#xff09; 将需要备份的硬盘、做好的再生龙工具盘安装到同一台电脑上。开机&#xff0c;进入BIOS设置菜单。选择从工具盘启动。…

重新整理机器学习和神经网络框架

本篇重新梳理了人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、神经网络&#xff08;NN&#xff09;和深度学习&#xff08;DL&#xff09;之间存在一定的包含关系&#xff0c;以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。…

Windows安装了pnpm后无法在Vscode中使用

Windows安装了pnpm后无法在Vscode中使用 解决方法&#xff1a; 以管理员身份打开 PowerShell 并执行以下命令后输入Y回车即可。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser之后就可以正常使用了

django StreamingHttpResponse fetchEventSource实现前后端流试返回数据并接收数据的完整详细过程

django后端环境介绍&#xff1a; Python 3.10.14 pip install django-cors-headers4.4.0 Django5.0.6 django-cors-headers4.4.0 djangorestframework3.15.2 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple 总环境如下&#xff1a; Package Version -…

如何在 Ubuntu 22.04 上安装 Webmin 教程

简介 在本教程中&#xff0c;我们将解释如何在 Ubuntu 22.04 服务器上安装 Webmin。 Webmin 是一个功能强大的基于 Web 的控制面板&#xff0c;它允许你通过一个简单的 Web 界面管理服务器的各个方面&#xff0c;例如用户帐户、DNS、防火墙、数据库等等。本指南将引导你完成在…

【一起python】银行管理系统

文章目录 &#x1f4dd;计算机基础概念&#x1f320; 导入模块&#x1f320;定义input_card_info函数&#x1f320; 定义check_password函数&#x1f320;初始化用户字典和欢迎信息&#x1f309; 主循环&#x1f309;开户操作&#x1f309;查询操作&#x1f309;取款操作&#…

【D3.js in Action 3 精译_047】5.2:图形的堆叠(一)—— 图解 D3 中的堆叠布局生成器

当前内容所在位置&#xff1a; 第五章 饼图布局与堆叠布局 ✔️ 5.1 饼图和环形图的创建 5.1.1 准备阶段&#xff08;一&#xff09;5.1.2 饼图布局生成器&#xff08;二&#xff09;5.1.3 圆弧的绘制&#xff08;三&#xff09;5.1.4 数据标签的添加&#xff08;四&#xff09…