2021-04-04

本文探讨了在多分类任务中如何通过混淆矩阵计算宏F1和微F1分数。通过OvR策略,可以将每个类别与其他类别对比,形成多个2X2混淆矩阵,或者直接使用一个nXn的混淆矩阵。示例代码展示了如何使用sklearn库计算这些指标。
摘要由CSDN通过智能技术生成

 

1

 

1

 

对于多分类任务,n个类别可以得到n个 2X2 的混淆矩阵,也可以直接使用 1个 nXn的混淆矩阵表示。为了得到n个 2X2 的混淆矩阵,可以将使用OvR的思想,例如有,A,B,C类,对于A类来说可以将三类变为两类, A类和其他类从而得到一个 2X2的混淆矩阵,对于B,C类执行同样操作 ,便可以得到B,C类对应的 2X2 的混淆矩阵。经过上述操作总共得到 3 个 2X2 的混淆矩阵,这样便可以使用上面的公式计算 宏F1,微F1了。

也可以直接使用一个 n X n 的混淆矩阵, 对于A,B,C类来说,是一个 3X3的混淆矩阵。  

from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score

y_test = [1,2,3,4,5,6,1,3,4]
y_true = [2,3,3,4,4,6,1,3,4]

print(precision_score(y_test,y_true,average='micro'))
print(recall_score(y_test,y_true,average='micro'))
print(f1_score(y_test,y_true,average='micro'))


print("-----------------------------")
print(precision_score(y_test,y_true,average='macro'))
print(recall_score(y_test,y_true,average='macro'))
print(f1_score(y_test,y_true,average='macro'))
0.6666666666666666
0.6666666666666666
0.6666666666666666
-----------------------------
0.5555555555555555
0.5833333333333334
0.5444444444444444

二百

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值