选择正确的度量评估机器学习模型-分类指标
bigegpt 2024-09-29 09:23 3 浏览
在为机器学习模型选择正确的度量:回归指标中,我们讨论了回归中使用的一些重要指标,它们的优缺点以及用例。这部分将关注分类中常用的度量标准。
定义
在讨论每种方法的优缺点之前,我们首先要了解分类问题中使用的基本术语。如果您已熟悉术语,则可以跳过本节。
召回或敏感度或TPR(真阳性率):正确确定为阳性的项目数(TP/(TP+FN))
特异性或TNR(真阴性率):正确确定为阴性的项目总数(TN)/(TN+FP)
精度:正确识别为正项目的项目数,确定为正TP/(TP+FP)
假阳性率或I型错误:误判为真阴性的阳性项目数-FP/(FP+TN)
假阴性率或II型错误:被认定为阴性的项目中错误识别为阴性的项目数-fn/(fn+TP)
混淆矩阵
F1分数:是准确率和召回率的调和平均数 F1 = 2*Precision*Recall/(Precision + Recall)
准确度:正确分类的总项目百分比-(tp+tn)/(n+p)
ROC-AUC评分
ROC-AUC评分的概率解释是,如果你随机选择一个正的情况和一个负的情况,那么根据分类器的情况下,正的情况比负的情况的概率是由AUC给出的。在这里,秩是根据预测值的顺序来确定的。
ROC-AUC的一些重要特征是 -
值可以在0到1的范围内。然而,对于平衡数据的随机分类器的auc分数是0.5
ROC-AUC评分独立于为分类设置的阈值,因为它仅考虑每个预测的等级而不考虑其绝对值。对于输出概率时需要阈值的F1得分也是如此
Log-Loss
Log-Loss是对准确度的度量,它结合了二元类下面的表达式给出的概率置信度的概念:
它根据实际标签的变化程度来考虑预测的不确定性。在最糟糕的情况下,假设您对所有观察值预测为0.5。所以对数损失将变成-log(0.5)= 0.69。因此,我们可以说,考虑到实际概率,0.6以上的任何数据都是非常差的模型。
案例1
Log-loss与ROC&F1的比较
考虑案例1(平衡数据),看起来模型1在预测绝对概率方面做得更好,而模型2根据它们的真实标签对观测值进行排名时效果最好。让我们来验证实际得分:
如果你考虑Log-loss,模型2是最差的,因为绝对概率与实际标签有很大差别,所以Log-loss很高。但是这与F1和AUC得分完全不一致,根据这个得分,模型2具有100%的准确性。此外,您还想指出,在不同的阈值下,F1分数正在改变,并且偏好模型1而不是模型2,默认阈值为0.5。
案例2
他们每个人如何处理类失衡问题?
这两种模型唯一的区别在于他们对观测13和14的预测。模型1在分类观测13(标号0)方面做得更好,而模型2在分类观测14(标号1)方面做得更好。我们的目标是看看哪个模型能够更好地分类不平衡类的差异(只有很少观察的类,这里是标号1)。在诸如欺诈检测/垃圾邮件检测等问题中,正面标签很少,我们希望我们的模型能够正确预测正面类别,因此我们有时会更喜欢那些能够对这些正面标签进行分类的模型
显然,Log-loss在这种情况下是失败的,因为根据Log-loss,两个模型都同样地执行。这是因为Log-loss函数是对称的,不区分类。
与模型1相比,F1模型和ROC-AUC模型在偏好模型2方面表现更好。因此,我们可以将这两种方法用于类失衡。但是我们将不得不深入研究他们对待类失衡的方式。
在前面的例子中,我们看到很少有正面的标签。在第二个例子中,很少有负面标签。我们来看看F1得分和ROC-AUC如何区分这两种情况。
ROC-AUC评分处理少数负面标签的情况与处理少量正面标签的情况相同。这里需要注意的一点是,对于模型3和模型4,F1得分几乎相同,因为正数标签的数量很大,并且只关注正分类的错误分类。
你什么时候用F1而不是rocauc ?
当你有一个小的正类时,F1评分更有意义。这是欺诈检测中常见的问题,因为正面标签很少。我们可以用下面的例子来理解这个语句
from sklearn import metrics
import numpy as np
y_true = np.concatenate((np.ones(100), np.zeros(900)))
a = np.random.uniform(0.5,1, 5)
b = np.random.uniform(0,0.5, 995)
y_pred1 = np.concatenate((a,b))
a = np.random.uniform(0.5,1, 90)
b = np.random.uniform(0,0.5, 910)
y_pred2 = np.concatenate((a,b))
print(metrics.f1_score(y_true, y_pred1>0.5))
print(metrics.f1_score(y_true, y_pred2>0.5))
print(metrics.roc_auc_score(y_true, y_pred1))
print(metrics.roc_auc_score(y_true, y_pred2))
我们可以看到,模型(1)在10K观测数据集中预测100个真阳性中的5个阳性,而另一个模型(2)预测100个真阳性中的90个阳性。显然,在这种情况下,模型(2)比模型(1)做得更好。让我们看看F1得分和ROC-AUC得分是否能够捕捉到这种差异。
F1 score for model (1) = 2*(1)*(0.1)/1.1 = 0.095
F1 score for model (2) = 2*(1)*(0.9)/1.9 = 0.947
是的,F1分数的差异反映了模型的性能。
ROC-AUC for model (1) = 0.5
ROC-AUC for model (2) = 0.93
ROC-AUC给模型1带来了不错的分数,这并不是它性能的好指标。因此,我们应该小心选择ROC AUC不平衡数据集。
你应该使用哪种度量来进行多分类?
我们还有三种非二进制分类:
多类:具有多于两个类的分类任务,使得输入被分类为一个类,并且只有这些类中的一个。例如:将一组水果图像分类到这些类别中的任何一个 - 苹果,香蕉和橙子。
多标签:将样本分类为一组目标标签。例如:将博客标记为技术,宗教,政治等一个或多个主题。标签是孤立的,它们的关系不被认为是重要的。
分层:每个类别可以与相似类别一起分组,创建元类,这些类又可以再次分组,直到到达根级(包含所有数据的集)。例子包括文本分类和物种分类。有关更多详细信息,请参阅此博客。
我们只会介绍第一类。
正如你在上面表中看到的,我们大致有两种度量——Micro-average和Macro-average,我们将讨论每一种方法的利弊。最常用的多类度量是 F1 score, Average Accuracy, Log-loss。还没有发展良好的ROC-AUC得分多类。
多类的logloss定义为:
在Micro-average中,对不同集合的系统的真阳性、假阳性和假阴性进行归纳,并应用它们得到统计数据。
在Macro-average中,取不同集合上系统的精度和召回率的平均值。
如果存在类失衡问题,Micro-average更可取。
相关推荐
- 有些人能留在你的心里,但不能留在你生活里。
-
有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...
- Python学不会来打我(34)python函数爬取百度图片_附源码
-
随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...
- 软网推荐:图像变变变 一“软”见分晓
-
当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...
- 首款WP8.1图片搜索应用,搜照片得资料
-
首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...
- 盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载
-
出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...
- 微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版
-
IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...
- 谷歌手把手教你成为谣言终结者 | 域外
-
刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...
- NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!
-
还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...
- 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
-
前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...
- 为庆祝杜特尔特到访,这个国家宣布全国放假?
-
(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...
- 一课译词:毛骨悚然(毛骨悚然的意思是?)
-
PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...
- Bing Overtakes Google in China's PC Search Market, Fueled by AI and Microsoft Ecosystem
-
ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...
- 找图不求人!6个以图搜图的识图网站推荐
-
【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...
- 浏览器功能和“油管”有什么关联?为什么要下载
-
现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)