什么是 平衡准确率(Balanced Accuracy)?

平衡准确率(Balanced Accuracy)是对每个已声明类别分别计算召回率后取不加权平均,使各类别不受样本支持度大小影响而拥有相同贡献。

快速了解

规范文档官方规范

工作原理

理解类别均衡权重的等价关系

当每条样本按其真实类别支持度的倒数赋权时,普通加权 Accuracy 与 Balanced Accuracy 等价。这只是评测恒等关系,不代表训练时也应使用相同权重。当前 scikit-learn API把指标定义为逐类 Recall 平均,并另行提供 Chance-adjusted 选项。

保留缺失类别和支持度

已声明类别在测试集中没有样本时,其 Recall 没有定义。静默删除该类别会改变指标覆盖的类别集合,强行填零则回答另一问题。评测前应冻结标签清单,报告每类 Support 与 Recall,并确保测试集覆盖产品承诺处理的每个类别。即使各类权重相同,稀有类别估计仍可能高度不确定。

区分类别均衡与决策成本

Brodersen 等人的原始论文针对不均衡数据上的偏置分类器提出 Balanced Accuracy,并在明确假设下推导其后验分布。类别等权仍不等于业务伤害等权;应按真实误报与漏报成本比较阈值,并补充精确率、校准、工作量与切片证据。

主要特点

  • 对每个已声明类别的召回率做等权平均
  • 二分类时等于敏感度与特异度的平均
  • 减少评测汇总被多数类主导的问题
  • 等价于按真实类别频率倒数赋权后的准确率
  • 测试样本缺失某类时必须有明确处理策略
  • 不会平衡训练数据,也不编码业务特定错误成本

常见用途

  1. 类别频率差异明显时比较分类器
  2. 让稀有和常见路由标签具有相同评测影响
  3. 识别依靠多数类获得虚高准确率的模型
  4. 类别发生率变化后监控类别均衡表现
  5. 将全局分数与逐类召回率和不确定性共同报告

示例

loading...
Loading code...

常见问题

平衡准确率如何计算?

先为每个已声明类别分别计算 Recall,再取不加权算术平均。二分类时就是 Sensitivity 与 Specificity 的平均。结果还应公开类别集合、各类支持度、样本权重和缺失类别策略。

平衡准确率与普通准确率有什么区别?

普通准确率让每条样本贡献相同,因此常见类别影响更大;平衡准确率通过平均逐类召回,让每个真实类别贡献相同。类别支持度相等,或各类召回率恰好一致时,两者才会相等。

平衡准确率能修复不均衡训练数据吗?

不能。它只改变评测结果的聚合方式,不会重采样数据、修改损失、改善标签或修复偏置分类器。训练干预与评测指标是两项独立选择,都需要单独验证。

测试集缺少某个类别时怎么办?

该类别的 Recall 没有定义,因此无法按原类别集合估计 Balanced Accuracy。不要静默删除该类;应补充评测样本,或执行预先声明的处理策略并明确说明目标量已经变化。

平衡准确率足以作为生产发布门禁吗?

不足。它隐藏具体失败类别,并默认各类别同等重要。还应报告混淆矩阵、逐类召回率与精确率、支持度、不确定性、必要的校准或排序指标,以及上线阈值下的真实错误成本。

相关术语

相关文章