互联网资讯 / 人工智能 · 2023年11月8日 0

机器学习模型性能评估方法

机器学习模型性能评估方法

尽管您可以不断训练有监督的机器学习模型,但只有通过评估其性能,您才能真正了解模型的有效性。本文将详细讨论多种性能指标,并对它们的含义和使用方式进行直观解释。

为什么需要评估?

让我用一个简单的例子来说明。

罗宾和山姆都在为工科大学的入学考试做准备。他们共享一个房间,在解决数学问题时付出了同样的努力。他们的学习时间几乎相同,最终参加了期末考试。令人意外的是,罗宾通过了,而山姆没有。当我们深入了解时,发现他们的准备策略存在差异:罗宾参与了一系列测试,通过这些测试来评估自己的知识和理解,而山姆则过于自信,选择了单纯的训练。

同样地,在机器学习中,您可以广泛地训练模型,但如果不进行评估,您将无法信任该模型的有效性。

混淆矩阵

混淆矩阵是一个用于显示模型预测与实际类别标签之间关系的工具。

机器学习模型性能评估方法

假设您正在构建一个模型来判断一个人是否患有糖尿病。经过训练和测试拆分后,您拥有一个长度为100的测试集,其中70个数据点为阳性(1),30个为阴性(0)。现在,我将为您的测试预测绘制矩阵:

机器学习模型性能评估方法

在70个实际阳性数据点中,模型预测了64个为阳性,6个为阴性。而在30个实际阴性数据点中,模型预测了3个为阳性,27个为阴性。

请注意,在真正例、真负例、假正例和假负例的表示中,第二项标识预测结果,第一项则表示预测是否准确。

基于上述矩阵,我们可以定义一些重要的比率:

TPR(真正率)=(真正例/实际正例)

TNR(真负率)=(真负例/实际负例)

FPR(假正率)=(假正例/实际负例)

FNR(假负率)=(假负例/实际正例)

对于我们的糖尿病检测模型,我们可以计算以下比率:

TPR = 91.4%

TNR = 90%

FPR = 10%

FNR = 8.6%

为了使模型更智能,模型必须能够做出准确预测。这意味着您的真正例和假负例应该尽可能高,而假正例和假负例应尽量减少。在比率方面,TPR和TNR应较高,而FPR和FNR应较低。

智能模型:TPR,TNR,FPR,FNR

愚蠢模型:TPR,TNR,FPR,FNR的任何其他组合

有人可能会争辩,无法平等地关注所有四个比率,因为没有一种模型是完美的。那么,我们该怎么办呢?

确实如此。这也是我们在构建模型时需要考虑特定领域的原因。在某些领域,特定比率可能是优先考虑的,即使其他比率较差。例如,在癌症诊断中,我们不能错过任何阳性患者。因此,我们应该优先考虑TPR,尽可能将FNR降低到接近0。即使预测到健康患者也是可以接受的,因为他们可以接受进一步检查。

准确性

准确性字面上表示模型的正确预测能力。

准确性=正确预测/总预测

通过混淆矩阵,准确性可以表示为:准确性=(TP + TN)/(TP + TN + FP + FN)

准确性是最常用的性能指标之一。然而,值得注意的是,准确性有时可能会导致对模型的误解,因此在决定使用准确性之前,您应充分了解所用数据集和算法。

在讨论准确性的局限性之前,让我介绍两种数据集类型:

平衡数据集:拥有几乎相等类别的样本。例如,在1000个数据点中,600个为正,400个为负。

不平衡数据集:样本分布偏向某一特定类别。例如,在1000个数据点中,有990个为正,10个为负。

非常重要的是,在处理不平衡测试集时,切勿使用准确性作为度量。

为什么呢?

假设您有一个不平衡的测试集,其中包含990个正例和10个负例。最终,如果您创建了一个糟糕的模型,该模型总是预测为正例,那么在1000个测试点中,您将获得1000个正例预测。结果,您的准确性为:

990/1000 = 99%

哇!看起来很出色!您可能会为如此高的准确性而感到高兴。

但您应当意识到,模型实际上很差,因为它总是预测为正例。

非常重要的是,我们也不能比较两个返回相同准确性的模型。

某些模型(如Logistic回归)可以为每个数据点提供属于特定类别的概率。让我们考虑一个例子:

机器学习模型性能评估方法

如您所见,如果P(Y = 1)> 0.5,则预测为类别1。尽管M1和M2的准确性相同,但通过查看概率分数,可以明显看出M1表现更佳。

对数损失解决了这个问题,我将在后面的博客中详细解释。

精度与召回率

精度是指真实阳性(TP)与阳性预测总数的比率。它基本上告诉我们,正面预测中有多少次是真正的正例。

机器学习模型性能评估方法

请记住:这实际上是TPR。它告诉我们所有正例中有多少被预测为正。

F度量是精度和召回率的谐波平均值。

机器学习模型性能评估方法

为了更好地理解这一点,想象一下:您在百度搜索时返回了40个页面,但其中只有30个相关。而您的朋友告诉您,实际上该查询有100个相关页面。因此,精度是30/40 = 3/4 = 75%,而召回率是30/100 = 30%。在这种情况下,精度反映了搜索结果的相关性,而召回率则表示结果的完整性。

ROC与AUC

接收器工作特性曲线(ROC):

它展示了通过从模型给出的概率得分反向排序中获取多个阈值时,TPR与FPR之间的关系。

机器学习模型性能评估方法

那么,我们如何绘制ROC呢?

为了解答这个问题,我们回到上面的表格。仅考虑M1模型。对于所有x值,我们都有一个概率得分。接下来,我们将得分大于0.5的数据点分配为类别1。然后,将所有值按概率得分降序排序,得到一系列的阈值。接着,我们可以对应每个阈值计算TPR和FPR,并获得6对TPR和FPR。最后,只需绘制这些值,即可获得ROC曲线。

注意:由于最大TPR和FPR值为1,因此ROC曲线下的面积(AUC)介于0和1之间。

蓝色虚线下方的区域代表0.5。AUC = 0表示模型非常差,AUC = 1表示模型完美。只要您的模型AUC分数高于0.5,它就具有意义,因为即使是随机模型的AUC也为0.5。

非常重要的是,即使是由不平衡数据集生成的简单模型,您也可能获得较高的AUC。因此,在处理不平衡数据集时需格外小心。

注意:只要保持顺序,AUC与具体的概率得分无关。只要所有模型在根据概率得分排序后给出相同顺序的数据点,其AUC将相同。

对数损失

该性能度量评估数据点的概率得分与阈值之间的偏差,并按偏差程度给予惩罚。

在二元分类中,对于每个数据点,我们使用以下公式计算对数损失:

机器学习模型性能评估方法

其中p表示数据点属于类别1的概率,y是类别标签(0或1)。

假设某个x_1的p_1为0.95,而某个x_2的p_2为0.55,并且符合类别1的截止概率为0.5。则两者都符合类别1的条件,但p_2的对数损失将比p_1的对数损失大得多。

机器学习模型性能评估方法

从曲线中可以看出,对数损失的范围是[0,无穷大]。

在多类别分类中,对于每个数据点,我们使用以下公式计算对数损失:

机器学习模型性能评估方法

如果x(o,c)属于类别1,则y(o,c)=1。其余概念相同。

测定系数

用R2表示。在预测测试集目标值时,我们会遇到一些误差(e_i),即预测值与实际值之间的差。

假设我们有一个包含n个条目的测试集。每个数据点都有一个目标值,例如[y1,y2,y3….yn]。我们将测试数据的预测值设为[f1,f2,f3,….fn]。

通过使用以下公式计算残差平方和,即所有误差(e_i)平方的总和,其中fi是第i个数据点的模型的预测目标值。

机器学习模型性能评估方法