来源:海豚数智科学实验室
构建机器学习模型或深度学习模型的想法遵循建设性反馈原则。你构建一个模型,从指标中获取反馈,进行改进,并继续下去,直到达到理想的分类准确性。评估指标解释了模型的性能。评估指标(evaluation metrics)的一个重要方面是它们区分模型结果的能力。
本文解释了作为数据科学专业人士必须了解的 12 个重要评估指标。你将了解它们的用途、优点和缺点,这将帮助你相应地选择和实施它们。
在线工具推荐:Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器
1、背景知识
评估指标是用于评估统计或机器学习模型的性能和有效性的定量措施。这些指标可以深入了解模型的执行情况,并有助于比较不同的模型或算法。
在评估机器学习模型时,评估其预测能力、泛化能力和整体质量至关重要。评估指标提供了衡量这些方面的客观标准。评估指标的选择取决于特定的问题领域、数据类型和期望的结果。
我见过很多分析师和有抱负的数据科学家甚至懒得去检查他们的模型有多稳健。一旦他们完成模型的构建,他们就会匆忙地将预测值映射到看不见的数据上。这是一个不正确的做法。基本事实是建立预测模型不是你的动机。这是关于创建和选择一个模型,该模型可以在样本外数据上提供较高的accuracy_score。因此,在计算预测值之前检查模型的准确性至关重要。
在我们的行业中,我们考虑不同类型的指标来评估我们的机器学习模型。评估指标的选择完全取决于模型的类型和模型的实施计划。完成模型构建后,这 12 个指标将帮助你评估模型的准确性。考虑到交叉验证的日益普及和重要性,我还在本文中提到了它的原理。
1.1 预测模型的类型
当我们谈论预测模型时,我们谈论的是回归模型(连续输出)或分类模型(名义或二进制输出)。每个模型中使用的评估指标都不同。
在分类问题中,我们使用两种类型的算法(取决于它创建的输出类型):
分类输出:SVM 和 KNN 等算法创建类输出。例如,在二元分类问题中,输出将为 0 或 1。今天我们拥有可以将这些类输出转换为概率的算法。但这些算法并没有被统计学界很好地接受。
概率输出:逻辑回归、随机森林、梯度提升、Adaboost 等算法给出概率输出。将概率输出转换为类输出只是创建阈值概率的问题。
在回归问题中,我们的输出不会出现这种不一致的情况。输出本质上始终是连续的,不需要进一步处理。
对于分类模型评估指标的讨论,我使用了我对 Kaggle 上 BCI 挑战问题的预测。问题的解决方案不在我们这里讨论的范围之内。然而,本文使用了训练集的最终预测。针对该问题的预测是概率输出,假设阈值为 0.5,则将其转换为类输出。
2、常用评估指标
现在我们介绍机器学习中常用的评估指标。
2.1 混淆矩阵
混淆矩阵(confusion matrix)是一个 N X N 矩阵,其中 N 是预测类别的数量。对于当前的问题,我们有 N=2,因此我们得到一个 2 X 2 矩阵。它是机器学习分类问题的性能测量,其中输出可以是两个或多个类别。混淆矩阵是一个包含 4 种不同的预测值和实际值组合的表。它对于测量精确率、召回率、特异性、准确性以及最重要的 AUC-ROC 曲线非常有用。
以下是需要记住的混淆矩阵的一些定义:
真阳性(true positive):预测为阳性,而且这是真的。
真阴性(true negative):预测为阴性,而且它是真的。
误报(false positive):1 类错误,预测为阳性,但结果是错误的。
假阴性(false negative):2 类错误,预测为阴性,但结果是错误的。
准确率(accuracy):正确预测总数占正确预测总数的比例。
阳性预测值或精度(positive predictive value or precision):正确识别的阳性样本的比例。
阴性预测值(negative predictive value):正确识别出阴性样本的比例。
敏感性或召回率(sensitivity or recall):正确识别的实际阳性样本的比例。
特异性(sepcificity):实际阴性样本被正确识别的比例。
比率(rate):它是混淆矩阵中的一个测量因素。它还具有 TPR、FPR、TNR 和 FNR 4 种类型。
我们手头问题的准确率为 88%。从上面两个表可以看出,阳性预测值很高,但阴性预测值很低。敏感性和特异性也是如此。这主要是由我们选择的阈值驱动的。如果我们降低阈值,这两对完全不同的数字将会更加接近。
一般来说,我们关心的是上面定义的指标之一。例如,在一家制药公司,他们会更关心最小的错误阳性诊断。因此,他们会更关心高特异性。另一方面,损耗模型将更关注敏感性。混淆矩阵通常仅与类输出模型一起使用。
2.2 F1分数
在上一节中,我们讨论了分类问题的精度和召回率,并强调了为我们的用例选择精度/召回率基础的重要性。如果对于某个用例,我们试图同时获得最佳精度和召回率怎么办?F1-Score 是分类问题的精度值和召回值的调和平均值。F1-Score的公式如下:
现在,我想到的一个明显的问题是为什么要采用调和(harmonic)平均值而不是算术(arithmetic)平均值。这是因为 HM 对极端值的惩罚更多。让我们通过一个例子来理解这一点。我们有一个二元分类模型,结果如下:
精度:0,召回率:1
在这里,如果我们取算术平均值,我们会得到 0.5。很明显,上述结果来自一个愚蠢的分类器,它忽略输入并预测其中一个类作为输出。现在,如果我们采用 HM,我们会得到 0,这是准确的,因为该模型对于所有目的都是无用的。
这看起来很简单。然而,在某些情况下,数据科学家希望对精确度或召回率给予更高的重要性/权重百分比。稍微改变一下上面的表达式,以便我们可以为此目的包含一个可调整的参数 beta,我们得到:
Fbeta 衡量模型对于用户的有效性,该用户对召回率的重视程度是精确度的 β 倍。
2.3 增益图和提升图
增益图和提升图主要涉及检查概率的排序。以下是构建提升/增益图的步骤:
第 1 步:计算每个观测值的概率
第 2 步:按降序对这些概率进行排序。
第 3 步:构建十分位数,每组都有近 10% 的观测值。
第 4 步:计算每个十分位数的良好(响应者)、不良(无响应者)和总数的响应率。
你将得到下表,需要从中绘制增益/提升图表:
这是一张信息非常丰富的表格。累积增益图表是累积 %Right 和累积 %Population 之间的图表。对于当前的情况,这是图表:
该图告诉你模型将响应者与非响应者区分开的效果如何。例如,第一个十分之一拥有 10% 的人口,拥有 14% 的响应者。这意味着我们在第一个十分位数处获得了 140% 的提升。
在第一个十分位中我们可以达到的最大升力是多少?从本文的第一个表中,我们知道响应者总数为 3850。此外,第一个十分位数将包含 543 个观察值。因此,第一个十分位数的最大升力可能是 543/3850 ~ 14.1%。因此,我们的这个模型已经非常接近完美了。
现在让我们绘制升力曲线。升力曲线是总升力和人口百分比之间的图。请注意,对于随机模型,该值始终保持在 100% 不变。这是当前案例的情节:
还可以用十分位数绘制十分位数的提升:
这张图告诉你什么?它指出我们的模型在第 7 个十分位之前表现良好。发布后,每十分之一都将偏向于无响应者。任何提升@十分位数高于 100% 直到最小第 3 个十分位数和最大第 7 个十分位数的模型都是一个好的模型。否则你可能会首先考虑过采样。
提升/增益图广泛用于营销活动定位问题。这告诉我们可以将特定营销活动的目标客户定位到哪个十分位。此外,它还告诉你期望从新目标群体中得到多少反应。
2.4 K-S图
K-S 或 Kolmogorov-Smirnov 图衡量分类模型的性能。更准确地说,K-S是正负分布分离程度的度量。如果分数将总体分为两个单独的组,其中一组包含所有正样本,另一组包含所有负样本,则 K-S 为 100。
另一方面,如果模型无法区分阳性和阴性,那么就好像模型从总体中随机选择案例。K-S 将为 0。在大多数分类模型中,K-S 将落在 0 到 100 之间,值越高,模型区分正例和负例的能力就越好。
对于本次案例,如下表:
我们还可以绘制%Cumulative Good和Bad来查看最大分离。以下是示例图:
这里介绍的评估指标主要用于分类问题。到目前为止,我们已经了解了混淆矩阵、提升和增益图以及K-S图。让我们继续学习一些更重要的指标。
2.5 ROC 曲线下面积 (AUC – ROC)
这又是业内流行的评估指标之一。使用ROC曲线的最大优点是它独立于响应者比例的变化。此声明将在以下部分中变得更加清晰。
我们首先尝试了解一下 ROC(接收者操作特性)曲线是什么。如果我们查看下面的混淆矩阵,我们会发现对于概率模型,每个指标都会得到不同的值。
因此,对于每个敏感度,我们都会得到不同的特异性。两者的区别如下:
ROC 曲线是敏感性和(1-特异性)之间的图。(1-特异性)也称为假阳性率,敏感性也称为真阳性率。以下是当前案例的 ROC 曲线。
我们以阈值 = 0.5 为例(参考混淆矩阵)。这是混淆矩阵:
如你所见,此阈值的灵敏度为 99.6%,(1-特异性)约为 60%。该坐标成为 ROC 曲线中的点。为了将该曲线简化为一个数字,我们找到该曲线下的面积 (AUC)。
请注意,整个正方形的面积为 1*1 = 1。因此 AUC 本身就是曲线下面积与总面积的比率。对于当前的案例,我们得到的 AUC ROC 为 96.4%。以下是一些经验法则:
.90-1 = 优秀 (A)
.80-.90 = 良好 (B)
.70-.80 = 一般 (C)
.60-.70 = 差 (D)
.50-.60 = 失败 (F)
我们发现我们属于当前模型的优秀范围。但这可能只是过度拟合。在这种情况下,进行及时和超时验证变得非常重要。
需要记住的要点:
对于以类别作为输出的模型,将在 ROC 图中表示为单个点。
此类模型无法相互比较,因为判断需要针对 单个指标进行,而不是使用多个指标。例如,参数为 (0.2,0.8) 的模型和参数为 (0.8,0.2) 的模型可以来自同一个模型;因此,不应直接比较这些指标。
在概率模型的情况下 ,我们很幸运地得到了一个数字,即 AUC-ROC。但我们仍然需要审视整个曲线才能做出决定性的决定。也有可能一种模型在某些地区表现更好,而另一种模型在其他地区表现更好。
使用 ROC 的优点:
提升程度取决于人群的总响应率。因此,如果总体的响应率发生变化,同一模型将给出不同的提升图。解决这个问题的方法可以是真实的提升图(找到每个十分位数的提升与完美模型提升的比率)。但这样的比率对于企业来说几乎没有意义。
另一方面,ROC 曲线几乎与响应率无关。这是因为它有两个轴来自混淆矩阵的柱状计算。如果响应率发生变化,x 轴和 y 轴的分子和分母将以类似的比例变化。
2.6 对数损失
AUC ROC 考虑预测概率来确定我们模型的性能。然而,AUC ROC 存在一个问题,它只考虑概率的顺序,因此没有考虑模型预测更有可能为正的样本的更高概率的能力。在这种情况下,我们可以使用对数损失,它只不过是每个实例的校正预测概率的对数的负平均值。
p(yi) 是正类的预测概率
1-p(yi) 是负类的预测概率
yi = 1 表示正类,0 表示负类(实际值)
让我们计算一些随机值的对数损失,以获得上述数学函数的要点:
对 数损失 (1, 0.1) = 2.303
对数损失(1, 0.5) = 0.693
对数损失(1, 0.9) = 0.105
如果我们绘制这种关系,我们将得到如下曲线:
从向右缓慢下降的斜率可以明显看出,随着预测概率的提高,对数损失逐渐下降。然而,朝相反方向移动,当预测概率接近 0 时,对数损失会非常迅速地增加。
因此,对数损失越低,模型就越好。然而,没有绝对的衡量良好对数损失的方法,并且它取决于用例/应用程序。
虽然 AUC 是根据具有不同决策阈值的二元分类计算的,但对数损失实际上考虑了分类的“确定性”。
2.7 基尼系数
基尼系数有时用于分类问题。基尼系数可以直接从 AUC ROC 数得出。基尼系数只不过是ROC曲线和对角线之间的面积与上面三角形的面积之比。以下是使用的公式:
2.8 一致/不一致比率
A – 0.9
B – 0.5
C – 0.3
AB:一致
BC:不一致
2.9 均方根误差 (RMSE)
“平方根”的力量使该指标能够显示大量偏差。
该指标的“平方”性质有助于提供更可靠的结果,从而防止抵消正误差值和负误差值。换句话说,该度量恰当地显示了误差项的合理大小。
它避免使用绝对误差值,这在数学计算中是非常不希望的。
当我们有更多样本时,使用 RMSE 重建误差分布被认为更可靠。
RMSE 受异常值的影响很大。因此,在使用此指标之前,请确保您已从数据集中删除了异常值。
与平均绝对误差相比,RMSE 给予更高的权重并惩罚大的误差。
2.10 均方根对数误差
如果预测值和实际值都很小:RMSE 和 RMSLE 相同。
如果预测值或实际值较大:RMSE > RMSLE
如果预测值和实际值都很大:RMSE > RMSLE(RMSLE 几乎可以忽略不计)
2.11 R 平方
MSE(模型):预测值与实际值的均方误差
MSE(基线):平均预测与实际值的均方误差
2.12 调整 R 平方
添加新特征时,r 平方值要么增加,要么保持不变。r-squared 不会因为添加对模型没有任何价值的特征而受到惩罚。因此,r-squared 的改进版本是调整后的 r-squared。调整后的 平方的公式由下式给出:< p>
k:特征数量
n:样本数
3、交叉验证
3.1 交叉验证的概念
3.2 K 折交叉验证
对于较小的 k,我们有较高的选择偏差,但性能方差较低。
对于较大的 k,我们的选择偏差较小,但性能差异较大。
k = 2:我们只有 2 个与 50-50 示例相似的样本。在这里,我们每次仅针对 50% 的人群构建模型。但由于验证是一个重要的群体,验证性能的方差很小。
k = 观测值数量 (n):这也称为“留一”。我们有 n 个样本,并且建模重复 n 次,只留下一个观察结果进行交叉验证。因此,选择偏差很小,但验证性能的方差非常大。
4、结束语
到此这篇预训练模型是干嘛的(预训练模型对模型训练的影响)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/76855.html