深度学习(3)—— 评估指标

目录

1.二分类任务

[1.1 混淆矩阵](#1.1 混淆矩阵)

1.2评估指标

[1.2.1 准确率(Accuracy)](#1.2.1 准确率(Accuracy))

[​编辑1.2.2 精确率(Precision)](#编辑1.2.2 精确率(Precision))

[1.2.3 召回率(Recall,TPR)](#1.2.3 召回率(Recall,TPR))

[1.2.4 假阳性率(FPR)](#1.2.4 假阳性率(FPR))

[1.2.5 F1-Score](#1.2.5 F1-Score)

[1.3 ROC曲线,PR曲线,AUC,AP](#1.3 ROC曲线,PR曲线,AUC,AP)

[1.3.1 ROC 曲线:看模型 "区分正负例" 的能力](#1.3.1 ROC 曲线:看模型 “区分正负例” 的能力)

[1.3.2 PR 曲线:看模型 "在阳性样本中" 的精准度](#1.3.2 PR 曲线:看模型 “在阳性样本中” 的精准度)

[1.3.3 AUC:给曲线一个 "量化分数"](#1.3.3 AUC:给曲线一个 “量化分数”)

[1.3.4 AP](#1.3.4 AP)

[2. 多分类任务](#2. 多分类任务)

[2.1 混淆矩阵](#2.1 混淆矩阵)

[2.2 宏平均(Macro-Average)](#2.2 宏平均(Macro-Average))

[2.3 微平均(Micro-Average)](#2.3 微平均(Micro-Average))

3.回归任务

[3.1 基础误差指标](#3.1 基础误差指标)

[3.2 相对误差指标](#3.2 相对误差指标)

[3.3 拟合优度指标](#3.3 拟合优度指标)


1.二分类任务

1.1 混淆矩阵

混淆矩阵是机器学习中用于评估分类模型性能的重要工具,它展示了模型预测结果与真实标签之间的对应关系。通过混淆矩阵,我们可以计算出多种评估指标,如精确率、准确率、F1-Score等。下面我将详细解释这些概念,并说明如何理解和应用它们。

混淆矩阵是一个N×N的表格(N为类别数),用于展示分类模型预测结果与真实标签的对比情况。对于二分类问题,它是最常见的2×2矩阵:

|--------------|--------------|--------------|
| | 预测为正例(P) | 预测为负例(N) |
| 实际为正例(P) | 真正例 (TP) | 假负例 (FN) |
| 实际为负例(N) | 假正例 (FP) | 真负例 (TN) |

  • TP:模型正确预测为正例的数量(猜对了正例)
  • FP:模型错误预测为正例的数量(把负例猜成了正例)
  • FN:模型错误预测为负例的数量(把正例猜成了负例)
  • TN:模型正确预测为负例的数量(猜对了负例)

现在假设我们有一个医疗诊断模型:

  • 正例:患病

  • 负例:健康

|-----------|-----------|-----------|
| | 预测:患病 | 预测:健康 |
| 实际:患病 | TP = 80 | FN = 20 |
| 实际:健康 | FP = 15 | TN = 185 |

解读:

  • TP=80:80个病人被正确诊断为患病
  • FN=20:20个病人被误诊为健康(漏诊,很危险!)
  • FP=15:15个健康人被误诊为患病(误诊,造成不必要的恐慌)
  • TN=185:185个健康人被正确诊断为健康

1.2评估指标

|--------------|--------------|--------------|
| | 预测为正例(P) | 预测为负例(N) |
| 实际为正例(P) | 真正例 (TP) | 假负例 (FN) |
| 实际为负例(N) | 假正例 (FP) | 真负例 (TN) |

1.2.1 准确率(Accuracy)

准确率表示模型正确分类的样本占总样本数的比例

1.2.2 精确率(Precision)

精确率表示模型预测为正类别的样本中有多少是真正的正类别

1.2.3 召回率(Recall,TPR)

是指在所有实际为正类别的样本中,模型能够正确预测为正类别的比例

1.2.4 假阳性率(FPR)

负样本中,被误判为正的比例

1.2.5 F1-Score

F1 分数是精确率和召回率的调和平均数,它综合了两者的性能

为什么需要F1-Score?

  • 精确率和召回率通常相互矛盾:提高一个往往会降低另一个

  • F1-Score在两者之间寻找平衡点

不同场景下的指标选择

应用场景 重要指标 原因
垃圾邮件检测 精确率 不能把正常邮件误判为垃圾邮件
疾病诊断 召回率 不能漏诊病人
搜索引擎 精确率 + 召回率 既要相关结果,又要全面
欺诈检测 召回率 + 精确率 要找出所有欺诈,同时减少误报
平衡数据集 准确率 各类别数量相近时有效

1.3 ROC曲线,PR曲线,AUC,AP

1.3.1 ROC 曲线:看模型 "区分正负例" 的能力

ROC 曲线的横轴是假阳性率(FPR) ,纵轴是召回率(Recall)。它的本质是:通过调整模型的 "判断阈值"(比如模型认为概率≥0.5 算阳性,调整这个 0.5),画出不同阈值下 FPR 和 Recall 的对应关系。

不同效果模型的ROC曲线图:

所以这里,我们就有了一种模型概率阈值的选择方法:

而在一些业务错误代价严重不对称的场景(如医疗,金融),常使用代价敏感法来寻找阈值:


而在统计学中,两类错误代价相等的情况下,我们也会使用Youden指数(J统计量)来 寻找分类的概率阈值:

1.3.2 PR 曲线:看模型 "在阳性样本中" 的精准度

PR 曲线的横轴是召回率(Recall) ,纵轴是精确率(Precision) 。它专注于 "阳性样本" 的表现,特别适合样本极度不均衡的场景(比如罕见病:1 万个样本里只有 10 个患者)

当负样本远多于正样本时:

  • ROC曲线可能"欺骗"你:FPR = FP/(FP+TN) 中,巨大的TN会稀释FP的影响,导致FPR看起来很低

  • PR曲线更诚实:Precision = TP/(TP+FP) 直接暴露FP的代价,不受TN数量影响

  1. 真实反映正类预测质量:直接评估"当模型说它是正类时,有多可信"

  2. 业务对齐性强:精确率=成本,召回率=覆盖率,易于业务方理解

  3. 极端阈值敏感:在极高置信度区域仍能有效区分模型

1.3.3 AUC:给曲线一个 "量化分数"

AUC 是 "ROC 曲线下的面积",取值范围 0-1,是衡量模型性能的 "黄金指标"

怎么解读 AUC 值?

  • AUC=1:完美模型(零误诊、全查全),现实中几乎不存在。
  • 0.8<AUC<1:优秀模型(区分能力强)。
  • 0.5<AUC<0.8:一般模型(有一定区分能力,但需要优化)。
  • AUC=0.5:垃圾模型(和瞎猜一样)。
  • AUC<0.5:反向模型(还不如瞎猜,把预测结果反过来就能变好)

1.3.4 AP

  • 定义:以 Recall 为横轴、Precision 为纵轴绘制 P-R 曲线,曲线下的面积即为 AP。
  • 意义:避免单一阈值下 Precision/Recall 的局限性,全面反映单类目标在不同召回率下的精确率表现。
  • 作用:比 F1-Score 更细腻地量化单类目标的检测能力,是单类别算法对比的核心指标。

2. 多分类任务

2.1 混淆矩阵

假设我们有一个疾病诊断模型,需要在1000名患者中识别三种疾病:

  • A类:感冒(常见)
  • B类:肺炎(中等)
  • C类:过敏(罕见)

模型预测结果如下(混淆矩阵):

真实\预测 A类(感冒) B类(肺炎) C类(过敏) 总计
A类 450 (TP_A) 30 20 500
B类 40 280 (TP_B) 30 350
C类 10 10 130 (TP_C) 150
总计 500 320 180 1000

我们可以先计算出A,B,C三个类对应的精确率(Precision)和召回率(Recall):
A类(感冒):

  • 精确率(Precision)= 450 / 500 = 0.9
  • 召回率(Recall)= 450 / 500 =0.9

B类(肺炎):

  • 精确率(Precision)= 280 / 320 = 0.875
  • 召回率(Recall)= 280 / 350 = 0.80

C类(过敏):

  • 精确率(Precision)= 130 /180 = 0.722
  • 召回率(Recall)= 130 / 150 = 0.867

2.2 宏平均(Macro-Average)

计算方式: 先对每个类别的指标单独计算,再求算术平均。

  • 宏精确率 = (0.90 + 0.875 + 0.722) / 3 = 0.832

  • 宏召回率 = (0.90 + 0.80 + 0.867) / 3 = 0.856

  • 宏F1 = 2 × 宏精确率 × 宏召回率 / (宏精确率 + 宏召回率) = 0.844

宏平均的作用

  1. 平等对待每个类别:不管类别样本多少,都赋予相同权重

  2. 反映模型在所有类别上的均衡表现:能发现模型在稀有类别(C类过敏)上的不足

  3. 适合场景 :当每个类别都同等重要时,如疾病诊断中,不能因为过敏罕见就忽视它

关键特点 :宏平均对稀有类别更敏感 。如果C类表现很差(比如精确率只有0.2),宏平均值会明显降低,起到警示作用


2.3 微平均(Micro-Average)

计算方式: 先汇总所有类别的TP、FP、FN,再统一计算指标。

  • 总TP = 450 + 280 + 130 = 860

  • 总FP = (30+20) + (40+30) + (10+10) = 140 (所有非对角线预测值)

  • 总FN = (30+20) + (40+30) + (10+10) = 140 (所有非对角线真实值)

  • 微精确率 = 总TP / (总TP + 总FP) = 860 / (860 + 140) = 0.86

  • 微召回率 = 总TP / (总TP + 总FN) = 860 / (860 + 140) = 0.86

  • 微F1 = 2 × 0.86 × 0.86 / (0.86 + 0.86) = 0.86

微平均的作用

  1. 样本加权:大样本类别(感冒占50%)贡献更大,小样本类别影响较小

  2. 反映总体预测准确性 :更关注模型在所有样本上的整体表现

  3. 适合场景 :当关注整体效率 而非单个类别时,如大规模用户行为分析(点击/购买/忽略)

关键特点 :微平均对大类别更敏感。即使C类(过敏)预测得不好,只要A类(感冒)预测得好,微平均值仍可能较高。

宏平均像"各科老师的平均分",不能偏科;微平均像"全校总分",重点科目权重更大。

维度 宏平均(Macro) 微平均(Micro)
计算逻辑 先算每个类别的指标,再平均 先汇总所有类别的统计量,再算指标
类别权重 每个类别权重相同(平等对待) 样本多的类别权重更高(按样本量加权)
对不平衡数据的敏感度 对少数类敏感(反映其性能) 对多数类敏感(受其主导)
适用场景 需关注每个类别的表现(如罕见病识别) 需关注整体样本的表现(如大规模分类)

3.回归任务

3.1 基础误差指标

3.2 相对误差指标

3.3 拟合优度指标

相关推荐
幸福拾荒者1 天前
Lyra提示词优化专家
人工智能
北京盛世宏博1 天前
档案馆空气质量联网监控趋势分析
人工智能·gru·lstm
小小码农一只1 天前
AI与区块链结合的未来:数据安全与去中心化应用的探索
人工智能·去中心化·区块链
赵得C1 天前
深度学习中的梯度问题与激活函数选择:从理论到实践
人工智能·深度学习
金融小师妹1 天前
基于LSTM-GARCH混合模型:降息预期驱动金价攀升,白银刷新历史峰值的蒙特卡洛模拟验证
大数据·人工智能·深度学习·1024程序员节
A达峰绮1 天前
AI时代下的护城河:哪些行业正被重塑,哪些将永不消失?
人工智能·ai·aigc
机器之心1 天前
这下Altman急了,OpenAI紧急启动「红色警报」
人工智能·openai
新智元1 天前
OpenAI 危!DeepSeek 放大招:追平谷歌最强,手撕 GPT-5 High
人工智能·openai
新知图书1 天前
【新书推荐】《玩转FastGPT:像搭积木一样构建智能体》
人工智能·ai agent·智能体·大模型应用开发·大模型应用
EkihzniY1 天前
汽车VIN码识别:解锁汽车行业的智能密码
人工智能·汽车