分类损失函数与评估指标

目录

1 评估指标

1.1 准确率

1.2 精确率

1.3 召回率

1.4 F1 score

1.5 ROC曲线

1.6 AUC

目录

1 评估指标

1.1 准确率

1.2 精确率

1.3 召回率

1.4 F1 score

1.5 ROC曲线

1.6 AUC

1.7 PRC曲线的优势

2 损失函数

1. 负对数似然损失

2. 交叉熵损失

3. 指数损失

1 评估指标

混淆矩阵

TP(True Positive) ---- 正确预测正类的样本(真阳性)
FN(False Negative) ---- 错误预测为负类的样本(假阴性)
FP(False Positive) ---- 错误的预测为正类(假阳性)
TN(True Negative) ---- 正确预测为负类(真阴性)

1.1 准确率

准确率(accuracy): 反映分类器统对整个样本的判定能力,能将正的判定为正,负的判定为负,公式如下:

1.2 精确率

精确率(Precision):指的是所得数值与真实值之间的精确程度;预测正确的正例数占模型预测为正例总量的比率,一般情况下,精确率越高,说明模型的效果越好

1.3 召回率

召回率(Recall)预测对的正例数占所有正例的比率,一般情况下,Recall越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

1.4 F1 score

F1是精确率和召回率的调和均值,即:

                         

1.5 ROC曲线

每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。

ROC曲线为 FPR 与 TPR 之间的关系曲线,这个组合以 FPR 对 TPR,即是以代价 (costs) 对收益 (benefits),显然收益越高,代价越低,模型的性能就越好。

FPR: 错误预测为正类的样本;

TRP: 正确预测为正类的样本;

1.6 AUC

AUC的物理意义:正样本的预测结果大于负样本的预测结果的概率。所以AUC反映的是分类器对样本的排序能力

AUC 值为 ROC 曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。

AUC = 1,是完美分类器。

0.5 < AUC < 1,优于随机猜测。有预测价值。

AUC = 0.5,跟随机猜测一样(例:丢铜板),没有预测价值。

AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

注:对于AUC小于 0.5 的模型,我们可以考虑取反(模型预测为positive,那我们就取negtive),这样就可以保证模型的性能不可能比随机猜测差。

1.7 PRC曲线的优势

在正负样本分布得极不均匀(highly skewed datasets),负例远大于正例时,并且这正是该问题正常的样本分布时,PRC比ROC能更有效地反应分类器的好坏,即PRC曲线在正负样本比例悬殊较大时更能反映分类的真实性能。例如上面的(c)(d)中正负样本比例为1:10,ROC效果依然看似很好,但是PR曲线则表现的比较差。举个例子,

单从图(a)看,这两个分类器都比较完美(非常接近左上角)。而从图(b)可以看出,这两个分类器仍有巨大的提升空间。那么原因是什么呢? 通过看Algorithm1的点 A,可以得出一些结论。首先图(a)和(b中)的点A是相同的点,因为TPR就是Recall,两者是一样的。

  假设数据集有100个正样本。可以得到以下结论:

  由图(a)点A,可得:TPR=TP/(TP+FN)=TP/所有正样本 =TP/100=0.8,所以TP=80。

  由图(b)点A,可得:Precision=TP/(TP+FP)=80/(80+FP)=0.05,所以FP=1520。

  再由图(a)点A,可得:FPR=FP/(FP+TN)=FP/所有负样本=1520/所有负样本=0.1,所以负样本数量是15200。

  由此,可以得出原数据集中只有100个正样本,却有15200个负样本!这就是极不均匀的数据集。直观地说,在点A处,分类器将1600 (1520+80)个样本预测为positive,而其中实际上只有80个是真正的positive。 我们凭直觉来看,其实这个分类器并不好。但由于真正negative instances的数量远远大约positive,ROC的结果却“看上去很美”,因为这时FPR因为负例基数大的缘故依然很小。所以,在这种情况下,PRC更能体现本质。

PRC 曲线展示了在不同阈值下模型的精确率和召回率之间的权衡关系。一般来说,PRC 曲线越靠近右上角(精确率高、召回率高),表示模型性能越好。与 ROC 曲线相比,PRC 曲线更适用于处理类别不平衡的情况,因为它更加关注正例(少数类)的精确率和召回率。

在评估分类模型时,除了查看 PRC 曲线外,还可以计算曲线下面积(Area Under the PRC Curve,AUPRC)来 quantitatively 衡量模型性能。AUPRC 值越接近 1,表示模型性能越好。

2 损失函数

1. 负对数似然损失

2. 交叉熵损失

3. 指数损失

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

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

相关文章

每日一题:C语言经典例题之百文买百鸡(增加无解输出)

题目描述 公鸡五文钱一只&#xff0c;母鸡三文钱一只&#xff0c;小鸡一文钱三只&#xff0c;用m文钱买m只鸡&#xff0c;公鸡、母鸡、小鸡各买多少只&#xff1f; 输入 一个正整数m。 输出 若有解只输出一个解&#xff0c;即公鸡数量最少的那个解&#xff1b;若无解输出“No a…

Vue router 与 route 的区别

在Vue Router中&#xff0c;router和route是两个不同的概念&#xff0c;它们各自具有不同的作用和功能。 router &#xff08;路由实例&#xff09; router是Vue Router的实例&#xff0c;它是整个路由系统的核心。 router负责创建和管理路由映射关系&#xff0c;即URL路径与…

基于SSM的游戏攻略管理系统

游戏攻略管理系统的构建与实现 一、系统概述二、系统架构与技术选型三、系统功能模块四、系统特点五、总结与展望 随着网络游戏的普及和发展&#xff0c;游戏攻略成为玩家们提升游戏技能、了解游戏机制的重要途径。为了更好地满足玩家需求&#xff0c;提高游戏攻略的管理效率和…

C 内存管理

C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在 C 语言中&#xff0c;内存是通过指针变量来管理的。指针是一个变量&#xff0c;它存储了一个内存地址&#xff0c;这个内存地址可以指向任何数据类型的变量&#xff0c;包括整数、…

DBA面试总结(Oracle篇)

一、备份恢复 1. RMAN备份是一种用于备份和恢复数据库文件归档日志和控制文件的工具软件&#xff0c;主要执行的是物理备份&#xff0c;可以执行完全或不完全的数据库恢复。既能支持热备&#xff0c;在归档模式下&#xff0c;RMAN可以执行在线备份。在非归档模式下&#xff0c…

OpenHarmony轻量系统开发【7】驱动之I2C显示OLED屏幕

7.1实验效果 Hispark WiFi开发套件又提供一个oled屏幕&#xff0c;但是鸿蒙源码中没有这个屏幕的驱动&#xff0c;我们需要自己去移植。 以下是移植效果&#xff1a; 接口&#xff1a;I2C 使用引脚&#xff1a;HI_IO_NAME_GPIO_13 、 HI_IO_NAME_GPIO_14 7.2代码 这里我直…

Java动态getter/setter

前言 个人日常工作中的开发经验总结 通过反射动态获取实体类getter 首先&#xff0c;构造getter方法的名字&#xff0c;然后通过getMethod()方法从Database类中获取该方法的引用。接着&#xff0c;使用invoke()方法来调用该方法&#xff0c;从而获取属性的值。在调用getMeth…

供应链金融机器学习建模实战

随着全球贸易的不断发展和供应链的日益复杂化&#xff0c;供应链金融作为一种新型金融工具&#xff0c;正逐渐受到企业和金融机构的关注和重视。供应链金融是指通过金融手段来优化和改进供应链中的资金流动和货物流动&#xff0c;以实现企业间的合作共赢。 供应链金融的核心是将…

Java的自定义线程池

Java的自定义线程池 自定义线程池的原因 在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供&#xff0c;不允许在应用中自行显示的创建线程&#xff0c;这样一方面使线程的创建更加规范&#xff0c;可以合理控制开辟线程的数量&#xff1b;另一方面线程的细节管理…

docker容器内的进程启动监控,容器进程所在的PID namespce

在容器内启动进程 docker exec -it 9c6b0b0509da /bin/bash cd /home ./testapp 主机上的监控程序同样可以监控到 13022 /home/testapp !!!!!发现异常进程:testapp, exePath:/home/testapp GetExePath()函数返回的值是/home/testapp &#xff0c;即&#xff1a;进程执行文件所…

不能在子类的初始化列表中初始化父类的成员

不能在子类的初始化列表中初始化父类的成员 错误示例代码 class A { protected:int n_; };class B : public A { public:B() : n_(0){} };编译报错如下&#xff1a; error: class ‘B’ does not have any field named ‘n_’前置知识 继承情况下的初始化顺序 子类对象的构…

FFmpeg: 自实现ijkplayer播放器--08视频解码线程设计

文章目录 视频解码解码流程视频解码线程音频解码线程数据帧队列类型定义数据帧队列api视频解码 视频解码,读取数据包(packet),生成数据帧(frame),放入数据帧队列,用来输出音频和视频 解码流程 stream_component_open: 分配解码器上下文 avcodec_alloc_context3将码…

高频九问:产品经理面试题解析

01 ▼ 需求评审时研发说需求实现不了怎么办&#xff1f; 1.站在技术的角度&#xff0c;了解无法实现的原因 2.看有哪些可以替代的方案 3.评估替代方案对项目本身的影响&#xff0c;如延迟&#xff0c;如若在可接受范围内&#xff0c;适当的妥协 02 ▼ 是否了解我们公司&a…

Flume配置案例@Source:文件,Channel+Sink:Kafka

Source&#xff1a;某个目录下所有文件 Channel&#xff1a;Kafka Sink&#xff1a;Kafka 【Source和Channel的选择】 1&#xff09;TailDirSource TailDirSource相比ExecSource、SpoolingDirectorySource的优势。 TailDirSource&#xff1a;断点续传、多目录。Flume1.6以前…

大模型微调技术概览解读(chatGLM-6B)

目录 一些比较流行的PEFT方案 Prompt Tuning Prefix Tuning LoRA QLoRA 引用链接 参考文档&#xff1a;通俗解读大模型微调(Fine Tuning) - 知乎 从参数规模的角度&#xff0c;大模型的微调分成两条技术路线&#xff1a; 一条是对全量的参数&#xff0c;进行全量的训练…

【从零开始手搓12306项目】五、如何保证不超卖、不少卖、还能承受极高的并发?

逻辑设计&模型实现 余票查询&#xff1a;记录站站余票 座位购买&#xff1a;记录座位销售详情&#xff08;将卖票变成01二进制数的计算&#xff09; 使用事务保证原子性

VMware设置静态ip:以Centos7为例

1、获取网段&#xff0c;子网掩码和网关 到此获取到的信息&#xff1a; 网段&#xff1a;192.168.204.128 ~ 192.168.204.254 子网掩码&#xff1a;255.255.255.0 网关IP&#xff1a;192.168.204.2 2、修改Centos系统的网络配置 使用命令vim /etc/sysconfig/network-scripts/…

Kotlin从0到1,让你一周快速上手!!

声明 大家好&#xff0c;这里是懒羊羊学长&#xff0c;如果需要pdf版以及其他资料&#xff0c;请加入群聊。群里每天更新面经、求职资料&#xff0c;经验分享等&#xff0c;大家感兴趣可以加一下。 Kotlin 声明1.Kotlin基础2. Kotlin函数3.Kotlin进阶4.Kotlin集合5.Kotlin高…

全球顶级的低代码开发平台,你知道几个?

什么是低代码开发平台? 低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。 低码开发工具的好处 低代码平…

【QT教程】QT6数据库操作

QT6数据库操作 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费Q…