机器学习详解(11):分类任务的模型评估标准

模型评估是利用不同的评估指标来了解机器学习模型的性能,以及其优势和劣势的过程。评估对于确保机器学习模型的可靠性、泛化能力以及在新数据上的准确预测能力至关重要。

1 介绍

过拟合和欠拟合是导致机器学习算法性能不佳的两个主要原因。

  • 过拟合:模型在训练数据上表现得非常好,但对新数据泛化能力很差。模型过于复杂,捕捉了数据中的噪声和无关信息,而非真正的规律。
  • 欠拟合:模型过于简单,未能从训练数据中学习到充分的模式和规律,导致训练集和测试集上的性能都很差。

在这里插入图片描述

以下是过拟合和欠拟合的对比:

特性过拟合欠拟合
模型复杂度过高过低
训练集性能极好较差
测试集性能较差较差
原因学习了数据中的噪声和细节未能充分学习数据中的规律
解决方法简化模型、正则化、增加数据量、早停增加模型复杂度、延长训练时间、优化特征

2 评估准则

评估指标根据分类、回归、排序、聚类、主题建模等任务的不同而有所不同。以下是一些常见的指标:

  • 分类指标:Accuracy, Precision, Recall, F1-score, ROC, AUC 等
  • 回归指标:MSE, MAE, R²
  • 排序指标:MRR, DCG, NDCG
  • 统计指标:Correlation
  • 计算机视觉指标:PSNR, SSIM, IoU
  • 自然语言处理指标:Perplexity, BLEU 分数
  • 深度学习相关指标:Inception 分数, Frechet Inception 距离

本篇文章,我们将讨论分类指标

3 分类指标

当目标变量是类别型时,我们面对的是分类问题。选择最合适的指标取决于不同的因素,例如数据集的特性(是否存在类别不平衡)以及分析目标等。

混淆矩阵(Confusion Matrix)

混淆矩阵是一种用于衡量分类模型性能的工具。通过对预测值和实际值的比较,将结果划分为以下四种情况:

  • T P TP TP (True Positive):模型预测为正类,实际也为正类。
  • T N TN TN (True Negative):模型预测为负类,实际也为负类。
  • F P FP FP (False Positive):模型预测为正类,实际为负类(误报)。
  • F N FN FN (False Negative):模型预测为负类,实际为正类(漏报)。

在这里插入图片描述

分类模型的性能可以通过以下指标进行评估。 根据混淆矩阵有准确率、精确率和召回率几个定义,假设 T P = 10 , T N = 12 , F P = 1 , F N = 2 TP = 10, TN = 12, FP = 1, FN = 2 TP=10,TN=12,FP=1,FN=2,我们下面介绍一下这几个定义,并在例子中据此数据计算。

3.1 准确率(Accuracy)

准确率表示所有预测中正确预测的比例,公式为: A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = \frac{TP + TN}{TP + TN + FP + FN} Accuracy=TP+TN+FP+FNTP+TN

例: A c c u r a c y = 10 + 12 10 + 12 + 1 + 2 = 88 % Accuracy = \frac{10 + 12}{10 + 12 + 1 + 2} = 88\% Accuracy=10+12+1+210+12=88%

  • 通俗解释:老师判卷子时,看所有题中有多少题答对了,比如答对了88%,准确率就是88%。
  • 局限性:当类别分布不平衡时,准确率可能会误导。例如,若正类占比很低,仅预测所有数据为负类也可能获得高准确率。

3.2 精确率(Precision)

精确率衡量预测为正类中实际为正类的比例,公式为: P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP} Precision=TP+FPTP

例: P r e c i s i o n = 10 10 + 1 = 91 % Precision = \frac{10}{10 + 1} = 91\% Precision=10+110=91%

  • 通俗解释:医生诊断病人时,关注确诊为病的人里有多少是真正生病的,比如确诊10个,9个真生病了,精确率是90%。
  • 适用场景:当误报的代价较高时(如医疗诊断中的误报),需要关注精确率。

3.3 召回率(Recall)

召回率衡量实际为正类中被正确预测为正类的比例,公式为: R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN} Recall=TP+FNTP

例: R e c a l l = 10 10 + 2 = 83 % Recall = \frac{10}{10 + 2} = 83\% Recall=10+210=83%

  • 通俗解释:警察追逃犯时,关注所有逃犯里抓住了多少,比如有12个逃犯,抓住了10个,召回率是83%。
  • 适用场景:当漏报的代价较高时(如安全检测中的漏报),需要关注召回率。

3.4 F1分数(F1-Score)

F 1 F1 F1 分数是精确率和召回率的调和平均,用于综合考虑两者的表现,公式为: F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} F1=2Precision+RecallPrecisionRecall

例: 已知 P r e c i s i o n = 91 % Precision = 91\% Precision=91%, R e c a l l = 83 % Recall = 83\% Recall=83%,则 F 1 = 2 ⋅ 0.91 ⋅ 0.83 0.91 + 0.83 = 0.87 F1 = 2 \cdot \frac{0.91 \cdot 0.83}{0.91 + 0.83} = 0.87 F1=20.91+0.830.910.83=0.87

  • 适用场景:在搜索引擎中既要确保返回结果相关(精确率),又要尽可能多覆盖目标(召回率)。

3.5 微平均F1分数(Micro F1-Score)

微平均F1分数常用于多类别或多标签分类任务。它的计算方法是将所有类别的预测结果汇总后计算整体的精确率和召回率,再据此得到全局的 F1 分数。具体公式为:
P r e c i s i o n m i c r o = ∑ i T P i ∑ i ( T P i + F P i )   R e c a l l m i c r o = ∑ i T P i ∑ i ( T P i + F N i ) Precision_{micro} = \frac{\sum_{i} TP_i}{\sum_{i}(TP_i + FP_i)} \\\ Recall_{micro} = \frac{\sum_{i} TP_i}{\sum_{i}(TP_i + FN_i)} Precisionmicro=i(TPi+FPi)iTPi Recallmicro=i(TPi+FNi)iTPi
然后利用这两个值计算
F 1 m i c r o = 2 ⋅ P r e c i s i o n m i c r o ⋅ R e c a l l m i c r o P r e c i s i o n m i c r o + R e c a l l m i c r o F1_{micro} = 2 \cdot \frac{Precision_{micro} \cdot Recall_{micro}}{Precision_{micro} + Recall_{micro}} F1micro=2Precisionmicro+RecallmicroPrecisionmicroRecallmicro
对于单标签的多分类问题,Micro-F1实际上等同于模型的整体准确率,因为这相当于统计所有样本的总体正确率。

  • 适用场景:当类别分布较为平衡,或者我们更加关注模型的总体分类性能而非单个类别的表现时,可以使用 Micro-F1来评估模型。在多标签分类任务中,Micro-F1也很常用,因为它能综合衡量模型对所有标签的整体表现。

3.6 宏平均F1分数(Macro F1-Score)

宏平均F1分数是对每个类别分别计算精确率、召回率和F1分数,然后再对所有类别的F1取算术平均值。公式为:
F 1 m a c r o = 1 N ∑ i = 1 N F 1 i F1_{macro} = \frac{1}{N} \sum_{i=1}^{N} F1_i F1macro=N1i=1NF1i

  • 其中 N N N为类别数,每个 F 1 i F1_i F1i是第 i i i个类别的 F1 分数。

宏平均赋予每个类别相同的权重,因此能较好地反映小众类别的性能,即使这些类别在样本中占比很小。而Micro平均则受到数学(样本量较大的类别)的影响更大

  • 通俗解释:假设数学满分100分,得了90分(90%),英语满分50分,得了25分(50%)。Micro看总得分115/150 ≈ 76.7%,而Macro相当于(90% + 50%)/2 = 70%。
  • 适用场景:当数据集的类别分布不平衡且各类别同等重要时,Macro-F1是更合适的评价指标。它能防止模型在少数类上表现很差却因为多数类表现良好而蒙混过关的情况。

3.7 特异度(Specificity)

特异度,也称为真阴性率,度量的是实际为负类的样本中,被模型正确预测为负类的比例。公式为:
S p e c i f i c i t y = T N T N + F P Specificity = \frac{TN}{TN + FP} Specificity=TN+FPTN
例如,如果 T N = 95 , F P = 5 TN = 95, FP = 5 TN=95,FP=5,则 S p e c i f i c i t y = 95 95 + 5 = 95 Specificity = \frac{95}{95 + 5} = 95% Specificity=95+595=95

  • 通俗解释:在医疗诊断中,特异度表示对健康人群的检测准确率,即在所有实际没患病的人中,有多少被模型正确地判定为健康。例如有100位健康的受检者,其中95位被诊断为健康(5位被误诊为有病),那么特异度是 95%。
  • 适用场景:当误报(假阳性)的代价很高时,需要关注特异度。在疾病筛查中,如果特异度低,会有大量健康的人被误判为阳性从而接受不必要的检查;又如在入侵检测中,希望正常流量不被误报为攻击行为,那么就要求模型具有较高的特异度,以减少错误警报。

3.8 ROC曲线与AUC

ROC(Receiver Operating Characteristic)曲线是一种用于评估分类模型性能的图形工具,特别是在二分类任务中非常常用。它通过显示模型在不同阈值下的分类能力来帮助理解模型的区分能力。ROC曲线绘制了以下两个指标之间的关系:

  • True Positive Rate(TPR):真阳性率,也称为敏感度(Recall),公式为: T P R = T P T P + F N TPR = \frac{TP}{TP + FN} TPR=TP+FNTP

  • False Positive Rate(FPR):假阳性率,公式为: F P R = F P F P + T N FPR = \frac{FP}{FP + TN} FPR=FP+TNFP

通过调整分类阈值,模型在不同的TPR和FPR之间取得平衡,绘制成ROC曲线。

ROC Curve

  • 不同阈值对应的点在图上不一定连续,而是通过将所有可能的阈值下的 T P R TPR TPR F P R FPR FPR 计算出来的离散点连接起来形成的曲线。

AUC (Area Under the Curve)
AUC表示ROC曲线下的面积,值范围为0到1:

  • AUC = 1:理想模型,能完美区分正负样本。
  • AUC = 0.5:随机猜测模型,无分类能力。
  • AUC < 0.5:分类性能低于随机模型(可能因模型异常或标签反转)。

AUC value

优点

  • 不受类别不平衡影响。
  • 提供模型在不同阈值下的整体性能概览。

3.9 汉明损失(Hamming Loss)

汉明损失是多标签分类中常用的评价指标,用于衡量预测标签与真实标签之间的错误比例。具体而言,汉明损失定义为:预测错误的标签数占总标签数的比例,即
H a m m i n g   L o s s = 错误预测的标签数 总标签数 Hamming\ Loss = \frac{\text{错误预测的标签数}}{\text{总标签数}} Hamming Loss=总标签数错误预测的标签数
汉明损失可以理解为模型在每个标签上的平均错误率。

例子:设真实标签向量 y = [ 1 , 0 , 1 , 0 ] y=[1,0,1,0] y=[1,0,1,0],模型预测 y ^ = [ 1 , 1 , 0 , 0 ] \hat{y}=[1,1,0,0] y^=[1,1,0,0],其中第二个和第三个标签预测错误,共 4 4 4 个标签,则汉明损失 = 2 / 4 = 0.5 =2/4=0.5 =2/4=0.5

  • 适用场景:主要用于多标签分类任务,例如文本多标签分类、图像多标签标注、生物功能预测等。它关注模型在各标签上的整体错误情况,当需要评估模型对所有标签预测错误比例时,可以使用汉明损失。

这里我们区分一下汉明损失和准确率:

样本真实标签预测标签准确率Hamming Loss
A[1, 0, 1][1, 0, 1]正确(1)0.0 (全对)
B[0, 1, 1][0, 1, 0]错误(0)1/3 = 0.33
  • 准确率:只有预测的标签集合完全一致才算对,否则就是错
  • 汉明损失:更细致,考虑每一个标签的错误情况

4 评估指标的选择

指标名称适用场景/优先考虑情况说明/理由
准确率(Accuracy)类别分布均衡、各类错误代价相近时简单直观,反映整体正确率;但类别不均衡时可能误导
精确率(Precision)偏好减少误报(假阳性),如医疗诊断、垃圾邮件过滤关注预测为正的样本中有多少是真正的正类
召回率(Recall)偏好减少漏报(假阴性),如安全检测、疾病筛查关注实际正类中有多少被成功识别
特异度(Specificity)偏好减少对负类的误判,如健康筛查、入侵检测关注实际负类中有多少被正确分类
F1分数(F1-Score)需兼顾精确率与召回率,如搜索引擎、信息检索精确率与召回率的调和平均,适合不均衡类别场景
Micro-F1总体样本数量相近,或关注整体性能,如多标签分类将所有类别视为同等,对整体样本的正确率进行评估;结果受样本量大的类别影响较大
Macro-F1类别不均但各类别同等重要,如重视小类别表现的任务每个类别赋予相同权重,适合关注少数类性能,能揭示对小类别的预测能力
ROC-AUC需评估模型整体能力或选择最佳阈值,如医学决策支持衡量不同阈值下的性能,不受类别不平衡影响,提供模型区分能力概览
汉明损失(Hamming Loss)多标签分类任务,如文本多标签分类、图像多标签标注等衡量多标签预测中所有标签预测错误的比例,即错误标签数占总标签数的比例

5 总结

模型评估是确保机器学习模型性能可靠、泛化能力强的关键步骤。通过准确率、精确率、召回率、特异度、F1分数(包括微平均和宏平均)、ROC-AUC以及汉明损失等指标,我们能够全面了解分类模型的表现及其在不同场景下的优劣势。根据实际需求和任务特性选择合适的评估指标,并结合多种指标进行综合评估,是构建高效可靠模型的核心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tilblackout

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值