核心机器学习指标
在使用机器学习时,正确评估模型性能是一项至关重要的任务。我们可以使用很多指标来做到这一点。对于刚开始涉足这一领域的人来说,这可能是个问题——至少对我来说是这样。
我将从描述真/假阴性/阳性等概念开始,因为它们是更复杂指标的基础。然后我会提到并解释准确度、精确度、召回率或校准误差等指标。我还将解释混淆矩阵背后的基础知识以及有关如何构建混淆矩阵的简短代码片段。
为什么?
在线查找资源并阅读它们很简单。每个人都可以做到,我也做到了,但我错过了所有内容的综合词汇表。这是我写这篇文章的主要动机。首先,我将描述我在之前的项目中接触到的所有指标。
我认为这样的指标词汇表对所有刚接触机器学习模型的人都有用。
指标
让我们从真阳性和其他阳性/阴性组合开始。为了便于阅读,我将其制成表格形式。
真/假阳性/阴性
混淆矩阵
不太常见的是误差矩阵,它是我们模型性能的基本视觉表示。这个概念之所以得名,是因为它可以很容易地看出系统是否混淆了两个或多个类。此外,在多类的情况下,我们可以很容易地确定一对类是模型最难区分的。
在大多数情况下,它在行中表示实际类的实例,而在列中表示预测类的实例。然而,当列是标签而行是预测时,也可以有反向表示,但这种情况不太常见。
准确性
它是模型性能的基本指标。它描述了我们的模型做出正确预测的频率——通常,测量值以百分比表示。
准确性的问题在于它是一个非常差的指标并且很容易玩弄。最值得注意的是,我们可以相当轻松地在相当复杂的任务中实现高精度。
例如在反洗钱的情况下,你总是可以只返回零——这意味着这个人没有洗钱——你肯定会达到95%以上的准确率。因为大多数人实际上并没有试图做任何洗钱的事情。问题是:如此高的准确性是否意味着您的模型很好,或者您将需要一些其他指标来验证您的模型性能?我留给你的答案。
此外,当仅基于准确性时,很容易过度拟合模型。我们可能会在我们的代码中做出太多仅适用于我们的测试集并且可能根本无法概括的假设。
另一个问题是当我们错误地准备测试集时。会和train set过于相似,或者train set中会包含部分test set。我们可以再次以相当高的准确性结束,但泛化模型很差。
至于准确性的方程式——我们可以用真阳性和真阴性来表达它们。因此,它可以被视为与整个人口相比正确预测的比率。
TP + TN - 正确的预测
P + N - 总人口
精确
检查实际上正确识别了多少阳性。表示正确预测的正类与所有预测为正的项目的比率。
这可以看作是TP与TP和FP之和的比率。高精度意味着我们可以轻松识别阳性。此外,精度有助于我们形象化机器学习模型在分类正类时的可靠性。
TP+FP-分类阳性总数
记起
不太常见的是敏感性。它试图回答正确识别了多少实际阳性的问题。表示正确预测的正类与所有实际为正的项目的比率。
因此,它可以表示为TP与TP和FN之和的比值。高召回率意味着我们能够正确识别大部分阳性。而低召回率意味着该模型错误地识别了正值。
TP+FN-所有正样本
准确率和召回率问题
为了全面评估模型性能,我们需要知道这两个指标。然而,它们之间的关系却相当复杂。通常,提高准确率的行为会降低召回率,反之亦然;增加召回率的行动会导致精确率下降。因此,您必须仔细权衡并选择哪个指标对您的模型用例最重要。
信心分数
一个从0到1的数字(如果使用百分比表示法,则为0到100)用于表示我们的模型对其预测的确定程度。一般来说,置信度得分越高越好。低于0.5(50)的置信度分数可能表示随机或半随机预测。
在评估模型的准确性结果时,您还应该考虑置信度得分。您没有理由需要一个精度高但置信度低的模型。实际上是一个完全不确定其预测的模型。我们的目标应该是在一定的置信度分数内表达我们模型的准确性。
ROC和AUC分数
ROC是Receiver Operating Characteristic Curve的缩写。它是二进制分类预测能力的图形表示。描述在各种阈值设置下召回率(或真阳性率)和假阳性率(FPR)之间的关系。
AUC是曲线下面积的缩写。而AUROC是Area Under Receiver Operating Characteristic Curve的缩写。它是一个从零到一的数字,描述了位于ROC曲线下方的绘图部分。它可以用来描述我们的模型能多好地区分正样本和负样本。根据AUC的值,您的模型会有不同的行为。
对于AUC值等于:
- 1—模型将正确预测所有标签。
- 从0.5到1,AUC越高,我们的模型正确预测结果的机会就越大。
- 0.5—模型无法区分阳性和阴性。
- 0—模型将错误地预测所有标签(它将所有正类分类为负类,反之亦然)。
IUO
较长形式的并集或Jaccard指数的交集。它是描述两个数据集之间相似性的度量,范围从0到1(或0到100或用百分比表示)。值越高,两个群体越相似。
对于IOU等于:
- 1—共享所有成员的集。
- 0.5—集合共享一半的成员。
- 0—集不共享任何成员。
该指标大量用于对象检测和分割,以计算段之间的重叠程度。
虽然它很容易解释,但它对小样本非常敏感,可能会给出错误的结果,尤其是对于非常小的样本或缺少观察值的数据集。
它可以通过以下等式表示:
杰卡德指数=(两组中的数字)/(任一组中的数字)*100
在更多的数学符号中:
在这里您还可以看到为什么将其称为并集的交集,因为第一个操作称为交集,而第二个操作称为并集。
校准错误
它描述了模型的预测输出概率与地面实况分布的实际概率的匹配程度。校准误差可用于可视化给定模型结果与实际结果的差距。
F1分数
以调和平均值的形式将精度和召回率混合到一个指标中,它旨在更好地处理不平衡的数据集。当只需要一个指标来显示某些结果时,它也是默认使用的指标。准确率和召回率都被赋予同等的权重,因此没有一个比另一个具有更大的影响。
我们可以预期,如果两者都很高,那么F1也会很高,类似于精度和召回率的低值。然而,重要的是,如果一个高而另一个低,F1值将介于两者之间。和往常一样,度量值越高,我们的模型性能越好。
选择哪个指标?
迟早会出现一个问题,即向利益相关者展示哪个指标,或者我们应该关注哪个指标以使我们的模型更好。这里的答案很简单——视情况而定。
可以肯定的是,您不应该仅根据准确性来评估模型性能,而应考虑更多指标。但是,另一方面,如果您必须仅使用一个指标来呈现某些结果,则F1分数或AUC是非常好的选择。
至于其他指标,它们的重要性在很大程度上取决于模型的目的和缺点:
- 如果您评估由FN引起的错误更不可取,那么您应该关注Recall。
- 如果您评估这两种类型的错误都是不可取的,那么请关注F1。
- 如果你想让你的模型更确定它的预测,那么你应该专注于增加置信度分数和减少校准误差。
此外,如果您想显示或查看模型的缺点,则可以使用混淆矩阵轻松可视化哪些类可能有问题。
结论
有许多指标可用于验证机器学习模型的性能,它们的使用在很大程度上取决于您的模型用例。
但是,请记住,您永远不应仅基于准确性,而应使用其他指标来验证模型是否按预期执行。如果您需要向利益相关者展示单一指标,F1分数可能是一个不错的选择。感谢您的时间。