(二)sklearn.metrics.classification_report中的Micro/Macro/Weighted Average指标

本文详细介绍了在分类任务中评估模型性能的classification_report,包括MacroAverage、WeightedAverage和MicroAverage的计算过程。通过示例展示了它们如何处理不平衡数据,并解释了在不同场景下选择哪种平均方法的重要性。

欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1.classification_report

sklearn.metrics.classification_report输出分类预测结果的常用评估标准,输入是标签和类别的预测向量,包括精准度召回率F1 Score

借用1个例子来说明一下计算过程。原例子见:

https://towardsdatascience.com/micro-macro-weighted-averages-of-f1-score-clearly-explained-b603420b292f

数据为:
在这里插入图片描述

from sklearn.metrics import classification_report
import numpy as np
names = ["Airplane", "Boat", "Car"]
names.sort()
class_dict = dict([[v, i] for i,v in enumerate(names)])
# {'Airplane': 0, 'Boat': 1, 'Car': 2}
tru = np.array([0, 2, 2, 2, 2, 0, 1, 2, 0, 2])
pre = np.array([0, 1, 2, 2, 1, 1, 1, 0, 0, 2])
report = classification_report(tru, pre)
print(report)

输出结果为:

              precision    recall  f1-score   support

           0       0.67      0.67      0.67         3
           1       0.25      1.00      0.40         1
           2       1.00      0.50      0.67         6

    accuracy                           0.60        10
   macro avg       0.64      0.72      0.58        10
weighted avg       0.82      0.60      0.64        10

2.计算过程

上述预测结果对应的混淆矩阵为:

在这里插入图片描述

每个类别对应的TP(True Positive)\FP(False Negative)\FN(False Negative)为:

在这里插入图片描述

计算每个类别的Precision, RecallF1 Score:

在这里插入图片描述

上述的结果对每个类别单个输出,如果要输出分类效果的整体指标,最好的办法就是对每个类别做平均。Macro Average,Weighted Average,Micro Average对应不同的平均方法。

3.Macro Average

Macro Average是直接对各指标求和求平均。

m a c r o _ a v g _ p r e c i s i o n = 0.67 + 0.25 + 1 3 = 0.64 macro\_avg\_precision = \frac{0.67 + 0.25 + 1}{3} = 0.64 macro_avg_pre

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值