机器学习---模型评估
1、混淆矩阵

对以上混淆矩阵的解释:
P:样本数据中的正例数。
N:样本数据中的负例数。
Y:通过模型预测出来的正例数。
N:通过模型预测出来的负例数。
True Positives:真阳性,表示实际是正样本预测成正样本的样本数。
Falese Positives:假阳性,表示实际是负样本预测成正样本的样本数。
False Negatives:假阴性,表示实际是正样本预测成负样本的样本数。
True Negatives:真阴性,表示实际是负样本预测成负样本的样本数。
:真阳性率(True Positive Rate,TPR),也叫灵敏度(Sensitivity),召回率(Recall)。即:
,正确的预测出的正例数占样本中正例总数的比例。真阳性率越大越好,越大代表在正样本中预测为正例的越多。
:假阳性率(False Positive Rate,FPR),也叫误诊率。错误的预测出的正例数占样本中负例的比例。假阳性率越小越好,越小代表在负样本中预测为正例的越少。
:正确率(Precision),也叫精确率,
,通过模型预测出来真正是正例的正例数占模型预测出来是正例数的比例,越大越好。
:准确率(accuracy),
,模型预测正确的例数占总样本的比例。越大越好。
举例:假设现在有60个正样本,40个负样本,我们通过模型找出正样本50个,其中40个是真正的正样本,那么上面几个指标如下:
| TP=40 | FP=10 |
| FN=20 | TN=30 |
可知,一个模型的TP和TN越大越好。准确率=70/100=70%。精确率=40/50=80%。召回率=40/60=2/3。
2、ROC和AUC:
ROC(Receiver Operating Characteristic)曲线和AUC(Area Under the Curve)值常被用来评价一个二值分类器(binary classifier) 的优劣。
ROC曲线是以假阳性率FPR为横轴,以真阳性率TPR为纵轴的一个曲线图像。图像中的每一点是一个分类阈值,根据一些连续的分类阈值可以得到ROC的图像,如下图:有20个样本,其中真实正例有10个,用p表示,负例有10个,用n表示。Inst# 代表样本编号,Class代表样本真实的类别,Score表示利用模型得出每个测试样本属于真实样本的概率。依次将Score概率从大到小排序,得到下表:

从第一个样本开始直到第20个样本,依次将Score当做分类阈值threshold。当预测测试样本属于正样本的概率大于或等于该threshold时,我们认为该样本是正样本,否则是负样本。
如:拿到第一个样本,该样本真实类别是p,Score=0.9,将0.9看成分类阈值threshold,那么该样本预测是正例,TPR=1/10,FPR=0/10=0,拿到第二个样本,该样本真实类别是p,Score=0.8,将0.8作为threshold,该样本预测是正例,TPR=2/10,FPR=0/10=0 … … 以此类推,当拿到第7个样本时,该样本真实类别是n,Score=0.53,将0.53看成分类阈值threshold,预测为正例,但是预测错误,将本该属于负例的样本预测为正例,那么当阈值为0.53时,共预测7个样本,预测正确的样本标号为1,2,4,5,6。预测错误的样本标号为:3,7。那么此时,TPR=5/10=0.5,FPR=2/10=0.2。
按照以上方式,每选择一个阈值threshold时,都能得出一组TPR和FPR,即ROC图像上的一点。通过以上,可以得到20组TPF和FPR,可以得到ROC图像如下,当threshold取值越多,ROC曲线越平滑。

上图图像当样本真实类别为正例时,模型预测该样本为正例那么图像向上画一步(TPR方向)。如果该样本真实类别是负例,模型预测该样本为正例那么图像向右画一步(FPR方向)。
下图中,如果ROC的图像是通过(0,0)点和(1.1)点的一条直线也就是①线,那么当前模型的预测能力是0.5,即:模型在预测样本时,预测对一次,预测错一次,会形成①曲线。如果ROC曲线是②线,那么该模型预测数据的真阳性率大于假阳性率,也就是模型预测对的次数多,预测错的次数少,模型越好。当模型的ROC曲线为③线时,模型的假阳性率比真阳性率大,模型预测错的次数多,预测对的次数少,还不如随机瞎蒙的概率0.5。综上所述,ROC的曲线越是靠近纵轴,越陡,该模型越好。那么如何根据ROC来量化评价一个模型的好坏,这就要用到AUC面积。

AUC面积是ROC曲线与横轴(假阳性率,FPR)围成的面积,也就是曲线下方的面积。AUC面积越大越好,代表模型分类效果更准确。
计算AUC的公式:

其中, 是属于正例的样本。M:测试样本中的正例数。N:测试样本中的负例数。
代表将测试样本(正例和负例都有)中的Score值按照正序排序,找到样本属于正例的索引号累加和。
AUC=1,完美的分类器,采用这个预测模型时,不管设定什么样的阈值都能正确的预测结果。绝大多数情况下,不存在这种分类器。
0.5<AUC<1,优于随机猜测,可以调节分类阈值,使AUC越靠近1,模型效果越好。
AUC=0.5,和随机分类一样,就是随机瞎蒙,模型没有预测价值。
AUC<0.5,比随机分类还差,大多数情况下成功避开了正确的结果。
AUC这种评估方式较计算准确率的评估方式更好。假设有两个模型M1与M2,两个模型的准确率都是80%,假设默认阈值0.5时,M1模型预测正例的概率多数位于0.51左右,但不小于0.5。M2模型预测正例的概率多数位于0.9附近,那么同样是80%的正确率下,M2模型将结果预测的更彻底,反映到AUC面积中,M2中预测正例的概率多数位于0.9左右,对应的 比较大,相应的AUC值比较大,而M1的AUC相对较小。所以AUC这种评估模型的方式更能说明模型好有多好,能更好的计算模型的纯度。
相关文章:
机器学习---模型评估
1、混淆矩阵 对以上混淆矩阵的解释: P:样本数据中的正例数。 N:样本数据中的负例数。 Y:通过模型预测出来的正例数。 N:通过模型预测出来的负例数。 True Positives:真阳性,表示实际是正样本预测成正样…...
【机器学习】应用KNN实现鸢尾花种类预测
目录 前言 一、K最近邻(KNN)介绍 二、鸢尾花数据集介绍 三、鸢尾花数据集可视化 四、鸢尾花数据分析 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Fil…...
ACL和NAT
目录 一.ACL 1.概念 2.原理 3.应用 4.种类 5.通配符 1.命令 2.区别 3.例题 4.应用原则 6.实验 1.实验目的 2.实验拓扑 3.实验步骤 7.实验拓展 1.实验目的 2.实验步骤 3.测试 二.NAT 1.基本理论 2.作用 3.分类 静态nat 动态nat NATPT NAT Sever Easy-IP…...
MX6ULL学习笔记(十二)Linux 自带的 LED 灯
前言 前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动,Linux 内 核已经集成了。Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备 树文件中添加相应的 LED 节点即可,本章我们就来学…...
Qt容器QToolBox工具箱
# QToolBox QToolBox是Qt框架中的一个窗口容器类,常用的几个函数有: setCurrentIndex(int index):设置当前显示的页面索引。可以通过调用该函数,将指定索引的页面设置为当前显示的页面。 addItem(QWidget * widget, const QString & text):向QToolBox中添加一个页面…...
华为实训课笔记
华为实训 12/1312/14 12/13 ping 基于ICMP协议,用来进行可达性测试 ping 目的IP地址/设备域名(主机名) 如果能收到 reply 回复,则表示双方可以正常通信 <Huawei> 用户视图,只能做查询和一些简单的资源调用&…...
基于java 的经济开发区管理系统设计与实现(源码+调试)
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于java 的经济开发区管…...
外包干了3个月,技术退步明显。。。
先说一下自己的情况,本科生生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…...
详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第一节
关于使用Vue开发鸿蒙应用的教程,我这篇之前的博客还不够完整和详细。那么这次我会尝试写一个更加完整和逐步的指南,从环境准备,到目录结构,再到关键代码讲解,以及调试和发布等,希望可以让大家详实地掌握这个过程。 一、准备工作 下载安装 DevEco Studio 下载地址:…...
R语言对医学中的自然语言(NLP)进行机器学习处理(1)
什么是自然语言(NLP),就是网络中的一些书面文本。对于医疗方面,例如医疗记录、病人反馈、医生业绩评估和社交媒体评论,可以成为帮助临床决策和提高质量的丰富数据来源。如互联网上有基于文本的数据(例如,对医疗保健提供者的社交媒体评论),这些数据我们可…...
什么是CI/CD?如何在PHP项目中实施CI/CD?
CI/CD(持续集成/持续交付或持续部署)是一种软件开发和交付方法,它旨在通过自动化和持续集成来提高开发速度和交付质量。以下是CI/CD的基本概念和如何在PHP项目中实施它的一般步骤: 持续集成(Continuous Integration -…...
玩转Docker(四):容器指令、生命周期、资源限制、容器化支持、常用命令
文章目录 一、容器指令1.运行2.启动/停止/重启3.暂停/恢复4.删除 二、生命周期三、资源限制1.内存限额2.CPU限额3.磁盘读写带宽限额 四、cgroup和namespace五、常用命令 一、容器指令 1.运行 按用途容器大致可分为两类:服务类容器和工具类的容器。 服务类容器&am…...
回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 (多指标,多图)
回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 (多指标,多图) 目录 回归预测 | MATLAB实现CHOA-BiLSTM黑猩猩优化算法优化双向长短期记忆网络回归预测 (多指标,多图)效果…...
Qt/C++视频监控安卓版/多通道显示视频画面/录像存储/视频播放安卓版/ffmpeg安卓
一、前言 随着监控行业的发展,越来越多的用户场景是需要在手机上查看监控,而之前主要的监控系统都是在PC端,毕竟PC端屏幕大,能够看到的画面多,解码性能也强劲。早期的手机估计性能弱鸡,而现在的手机性能不…...
【docker】容器使用(Nginx 示例)
查看 Docker 客户端命令选项 docker上面这三张图都是 常用命令: run 从映像创建并运行新容器exec 在运行的容器中执行命令ps 列出容器build 从Dockerfile构建映像pull 从注册表下载图像push 将图像上载到注册表…...
【QT】时间日期与定时器
目录 1.时间日期相关的类 2.日期时间数据与字符串之间的转换 2.1 时间、日期编辑器属性设置 2.2 日期时间数据的获取与转换为字符串 2.3 字符串转换为日期时间 3.QCaIendarWidget日历组件 3.1基本属性 3.2 公共函数 3.3 信号 4.实例程序演示时间日期与定时器的使用 …...
蓝桥杯专题-真题版含答案-【古代赌局】【古堡算式】【微生物增殖】【密码发生器】
Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…...
和鲸科技携手深圳数据交易所,“数据+数据开发者生态”赋能人工智能产业发展
信息化时代,数据驱动决策的重要性日益凸显。通过利用数据可以深入了解市场需求、客户行为、竞争态势等关键信息,从而制定更为有效的战略和决策。围绕推动数据要素产业发展,近日,深圳数据交易所(以下简称“深数所”&…...
在MFC(Microsoft Foundation Classes)中 CreateThread函数
CreateThread是Windows API中用于创建新线程的函数。以下是对函数参数的详细解释: lpThreadAttributes(可选):指向SECURITY_ATTRIBUTES结构的指针,用于指定线程的安全性。可以设置为NULL,表示使用默认安全…...
Ubuntu 常用命令之 ls 命令用法介绍
Ubuntu ls 命令用法介绍 ls是Linux系统下的一个基本命令,用于列出目录中的文件和子目录。它有许多选项可以用来改变列出的内容和格式。 以下是一些基本的ls命令选项 -l:以长格式列出文件,包括文件类型、权限、链接数、所有者、组、大小、最…...
从CORS到自定义,让你的API更健壮
一、中间件是啥?咱用“餐厅”打个比方想象一下,你的FastAPI应用是个高级餐厅。👉 顾客(客户端请求)来到门口。- 迎宾(CORS中间件):先看你是不是从允许的街区(域名&#x…...
SmolVLA效果展示:三视角图像对齐误差对最终动作精度影响分析
SmolVLA效果展示:三视角图像对齐误差对最终动作精度影响分析 1. 项目概述 SmolVLA是一个专门为经济实惠的机器人技术设计的紧凑高效视觉-语言-动作模型。这个模型最大的特点是能够在有限的硬件资源下实现高质量的机器人控制,让更多开发者和研究者能够接…...
SDMatte模型推理性能剖析:使用Profiling工具定位计算瓶颈
SDMatte模型推理性能剖析:使用Profiling工具定位计算瓶颈 1. 为什么需要性能剖析 做AI模型推理优化就像修车一样,你得先知道哪里出了问题才能对症下药。SDMatte作为一款专业的图像抠图模型,在实际部署中经常会遇到推理速度慢、资源占用高等…...
一文读懂水面无人艇:每个硬件模块到底负责什么
目录 一、水面无人艇完整系统 二、硬件搭配负责哪些功能 2.1 艇体模块:决定“能不能稳、能不能装、能不能扛风浪” 2.2 动力与航行执行模块:决定“怎么动” 2.3 导航传感器模块:决定“我现在在哪、朝哪、跑多快” 1)GPS / 北…...
DriverStore Explorer:释放磁盘空间的开源驱动管理工具
DriverStore Explorer:释放磁盘空间的开源驱动管理工具 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 1. 诊断驱动膨胀:3个隐藏原因解析 你的C盘空间是…...
dbg-macro配置完全指南:禁用宏、强制颜色输出与警告控制
dbg-macro配置完全指南:禁用宏、强制颜色输出与警告控制 【免费下载链接】dbg-macro A dbg(…) macro for C 项目地址: https://gitcode.com/gh_mirrors/db/dbg-macro dbg-macro是一款轻量级C调试宏工具,通过简单的dbg(...)语法即可实现变量值、类…...
Xilinx Video IP实战:如何将HDMI输入转换为AXI4-Stream(附仿真+上板测试)
Xilinx Video IP实战:HDMI转AXI4-Stream全流程开发指南 在FPGA视频处理系统中,将HDMI等视频输入接口转换为标准化的AXI4-Stream协议是构建复杂视频处理流水线的关键第一步。不同于简单的接口转换,这一过程涉及视频时序解析、数据位宽适配、时…...
STM32duino S2-LP无线驱动库:Sub-1GHz低功耗可靠通信实现
1. 项目概述STM32duino X-NUCLEO-S2868A2 是一款面向 STM32 平台的 Arduino 兼容库,专为驱动意法半导体(STMicroelectronics)推出的 X-NUCLEO-S2868A2 扩展板而设计。该扩展板核心搭载 S2-LP 超低功耗 Sub-1GHz 射频收发器芯片(型…...
石墨烯这玩意儿在COMSOL里折腾起来挺有意思的,特别是搞太赫兹和近红外的同学估计都遇到过选模型的纠结。今天咱们就聊点实战经验,顺便甩点代码片段
Comsol石墨烯二维材料。 包含太赫兹德鲁得和近红外Kubo两种模型。 共7个案例,包含参考文献。先说说太赫兹波段常用的德鲁得模型,这货相当于把石墨烯当经典等离子体处理。在COMSOL里实现时,关键要设置表面电流密度: sigma_drude (…...
AutoDL云服务器避坑指南:从PyTorch到Jupyter,手把手搞定GPU环境配置
AutoDL云服务器GPU环境配置实战:从镜像选择到Jupyter避坑全攻略 第一次在AutoDL这类云GPU平台上配置深度学习环境时,那种既兴奋又忐忑的心情我至今记忆犹新。看着琳琅满目的镜像选项和复杂的版本匹配要求,稍有不慎就会陷入"版本地狱&qu…...
