You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多分类average='micro'下准确率与精确率等指标相等的原因及公式疑问

多分类micro平均下准确率与精确率/召回率一致的原因

核心结论

在多分类任务中使用average='micro'时,准确率、精确率、召回率以及F1值必然完全相等,这是由micro平均的计算逻辑直接决定的。

公式推导与逻辑拆解

micro平均的核心是先将所有类别的真阳性(TP)、假阳性(FP)、假阴性(FN)分别求和,再基于全局统计量计算指标:

  • 全局精确率:Precision_micro = sum(TP_i) / (sum(TP_i) + sum(FP_i))
  • 全局召回率:Recall_micro = sum(TP_i) / (sum(TP_i) + sum(FN_i))
  • 全局准确率:Accuracy_micro = sum(TP_i) / total_samples

关键的等价关系:

  1. sum(TP_i) + sum(FP_i) = total_samples:所有被模型预测为正例的样本总数,等于总样本数——因为每个样本都会被模型分配到一个类别,即每个样本都对应一个预测结果。
  2. sum(TP_i) + sum(FN_i) = total_samples:所有真实标签为正例的样本总数,等于总样本数——因为每个样本都有且仅有一个真实类别。

由此直接推导:

  • Precision_micro = sum(TP_i)/total_samples
  • Recall_micro = sum(TP_i)/total_samples
  • Accuracy_micro = sum(TP_i)/total_samples

三者完全相等,而F1值是精确率与召回率的调和平均,自然也等于同一个数值。

你引用实例的错误修正

你给出的实例中,准确率的计算存在错误:

ttl_TP = 15 + 15 + 45 = 75
ttl_FP = 9 + 5 + 11 = 25
ttl_FN = 5 + 15 + 5 = 25
ttl_samples = 100

# 错误计算
micro-averaging accuracy = 75 / (75 + 25 +25) = 75 / 125

这里的分母错误地重复累加了样本:sum(TP) + sum(FP) + sum(FN)并不是总样本数,正确的准确率分母应为总样本数100,因此正确计算为:
micro-averaging accuracy = 75 / 100 = 0.75,与精确率、召回率结果一致。

关于求和等式的澄清

文章提到的∑(TP_i + FP_i + FN_i) = total_samples表述不够严谨,正确的核心逻辑是上述两个等价关系:全局预测正例总数等于总样本数,全局真实正例总数等于总样本数。这才是micro平均下各指标一致的本质原因。

内容的提问来源于stack exchange,提问作者MinjeSeok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:30:21