混淆矩阵中的宏平均/微平均/权值平均的含义

在机器学习和深度学习模型评估结果中,我们经常会遇到micro avg、macro avg和weighted avg。本文将会介绍这三种模型评估指标的计算方式以及它们之间的区别。
  我们以sklearn.metrics.classification_report的输出结果作为展示,示例模型评估结果如下:
示例模型评估结果

maro avg的中文名称为宏平均,其计算方式为每个类型的P、R的算术平均,我们以F1的macro avg为例,上述输出结果中的macro avg F1值的计算方式为:

macro avg F1 = (0.90+0.73)/2=0.815
  weighted avg的计算方式与micro avg很相似,只不过weighted avg是用每一个类别样本数量在所有类别的样本总数的占比作为权重,因此weighted avg的计算方式为:

weighted avg = 0.901207/1756+0.73549/1756=0.8468
  micro avg的中文名称为微平均,是对数据集中的每一个示例不分类别进行统计建立全局混淆矩阵,然后计算相应的指标。在微平均评估指标中,样本数多的类别主导着样本数少的类,其计算公式如下:
微平均的计算公式
其中TP为被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的样本数,FP为被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的样本数。
  以下面的代码为例:

from sklearn.metrics import confusion_matrix, precision_score
y_true = ["A", "A", "A", "A", "B", "B", "C", "C", "C", "C", "C"]
y_pred = ["A", "B", "A", "A", "B", "A", "B", "C", "C", "C", "C"]
print(confusion_matrix(y_true, y_pred))
print(precision_score(y_true, y_pred, average='micro'))

输出的混淆矩阵和micro avg precision为:

[[3 1 0]
[1 1 0]
[0 1 4]]
0.7272727272727273
对于类别A,它的TP=3, FP=1;对于类别B,它的TP=1, FP=1;对于类别C,它的TP=4,FP=1,因此micro avg precision为:

(3+1+4)/(3+1+1+1+4+1)=0.7273
参考网文:https://dandelioncloud.cn/article/details/1593481462500478977

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值