宏平均(Macro-averaging)、微平均(Micro-averaging)和权重平均(weight-averaging)的理解

10 篇文章 1 订阅

很多博客关于宏平均,微平均,权重平均介绍了一大堆的公式,让人看了一头雾水,本文主要重点介绍怎么计算,从实例出发,相信大家在跟着算完一遍之后就知道这三个平均的意思了。

相关定义:

真正例(True Positive,TP):真实类别为正例,预测类别为正例。
假正例(False Positive,FP):真实类别为负例,预测类别为正例。
假负例(False Negative,FN):真实类别为正例,预测类别为负例。
真负例(True Negative,TN):真实类别为负例,预测类别为负例。
以正例为例计算:
召回率:TP / TP + FN
准确率:TP / TP + FP
那么F = [(1+β2)* 召回率 * 准确率] / (召回率 + 准确率)
而F1 就是β=1的情况,即F1 = (2* 召回率 * 准确率) / (召回率 + 准确率)

一个例子

这个例子是通过sklearn.metric.classification_report库自动计算出来的。micro avg:微平均,macro avg:宏平均,weighted avg :权重平均。之后就以这个例子进行计算。

               precision    recall  f1-score   support
            no     0.24      0.54      0.33      7535
           yes     0.73      0.42      0.53     22462
     micro avg     0.45      0.45      0.45     29997
     macro avg     0.48      0.48      0.43     29997
  weighted avg     0.61      0.45      0.48     29997

单个类别的f1的计算:

f1no = 2 * 0.24 * 0.54 / (0.24 + 0.54) = 0.3323 ≈ 0.33
f1yes = 2 * 0.42 * 0.73 / (0.73 + 0.42) = 0.5332 ≈ 0.53

微平均

TN = 7535 * 0.54 = 4069 -> 预测对的负例
TP = 22462 * 0.42 = 9343 -> 预测对的正例

  • 微平均其实就是所有类别的准确率。即(TP + TN) / (TP + FP + TN + FN)。那么有

    微平均 = (0.54 * 7535 + 0.42 * 22462) / (22462 + 7535 ) = 0.45 = micro avg

宏平均

  • 宏平均其实就是所有类别的f1平均

    宏平均 = (f1no + f1yes ) / 2 = 0.33 + 0.53 = 0.43 = macro avg

权重平均

  • 权重平均其实就是所有类别的f1加权平均

    权重平均 = (f1no * no样本占比 + f1yes * yes样本占比 ) / 2 = 0.33 * [7535 / (7535+22462)] + 0.53 * [22462 / (7535+22462)] = 0.48 = weighted avg

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值