深度学习进阶文档深度页
深度学习评估与类别不平衡
从 logits、阈值、混淆矩阵、AUC、校准和 mask 建立可靠评价。
学习目标
- 手算 P/R/F1
- 选择阈值
- 排除 padding
为什么需要这个概念
模型排序好不代表阈值好或概率校准好。
- 决定真实业务表现
- 避免少数类失效
学习前需要掌握
输出层与损失内容待补充
背景与问题
模型排序好不代表阈值好或概率校准好。
概念定义
损失用于学习,指标用于解释任务表现;类别不平衡时 Accuracy 可能误导。
直观理解
不同指标回答不同问题,先说明哪种错误更贵。
核心原理
验证集选阈值/权重/温度,测试只最后评估;评估集保持真实分布。
序列任务仅统计 valid mask;指标跨完整数据累计而非平均 batch 指标。
数学表达
核心公式
P 精确率,R 召回率。
变量含义
TP/FP/FN/TN混淆矩阵计数
计算步骤
- 1Precision=30/40=.75
- 2Recall=30/50=.6
代码对应位置
示例 1深度学习评估与类别不平衡 · PyTorch 示例:验证深度学习评估与类别不平衡的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
TP/FP/FN/TN | 混淆矩阵计数 |
完整数值示例
指标
已知条件
- TP=30,FP=10,FN=20,TN=940
- 1
Precision=30/40=.75
- 2
Recall=30/50=.6
F1≈0.667
处理前后对比
计算与实现步骤
- 1
收集 logits
- 2
转概率
- 3
验证选阈值
- 4
累计混淆
- 5
计算每类指标
- 6
最终测试
代码实现
示例 1
深度学习评估与类别不平衡 · PyTorch 示例
深度学习评估与类别不平衡 · PyTorch 示例
PyTorch
example_01.py用途:验证深度学习评估与类别不平衡的输入、计算和输出。
prob=torch.sigmoid(logits)
pred=(prob>=.5).long()
tp=((pred==1)&(target==1)).sum()代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证深度学习评估与类别不平衡的输入、计算和输出。
prob- 模型输出的正类概率。
Step 1 · 1–3 行
logits 先 Sigmoid
prob=torch.sigmoid(logits)
pred=(prob>=.5).long()
tp=((pred==1)&(target==1)).sum()预期输出或运行结果
得到 TP 等计数用于指标。
常见错误 · 5 条
- 只 Accuracy
- 测试选阈值
- AUC 当校准
- padding 入指标
- 评估集过采样
实际应用
- 医学/故障/序列
常见错误
只 Accuracy
测试选阈值
AUC 当校准
padding 入指标
评估集过采样
文档来源
16_模型评估与类别不平衡原始文档
学习资料/deeplearning/16_模型评估与类别不平衡.md- §1 损失与指标
- §3–8 指标
- §9 校准
- §10 不平衡
- §11 mask
- §12–14 代码错误
常见问题
AUC 高代表概率可信?
不代表,校准是另一问题。
阈值在哪选?
验证集。
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。