当前位置:   article > 正文

多分类的recall,f1-score的计算方法_多分类f1 score计算

多分类f1 score计算

首先可以用sklearn包直接计算。

from sklearn.metrics import recall_score,f1_score,accuracy_score

y_true = [1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4]
y_pred = [1, 1, 1, 0, 0, 2, 2, 3, 3, 3, 4, 3, 4, 3]
print(f1_score(y_true,y_pred,labels=[1,2,3,4],average='micro'))
print(f1_score(y_true,y_pred,labels=[1,2,3,4],average='macro'))
print(recall_score(y_true,y_pred,labels=[1,2,3,4],average='micro'))
print(recall_score(y_true,y_pred,labels=[1,2,3,4],average='macro'))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

F1-score: 2*(P*R)/(P+R)

首先计算出每一类的TP ;FP;FN
1类 2类 3类 4类 总数
TP 3 2 2 1 8
FP 0 0 3 1 4
FN 2 2 1 1 6

micro的 精确度P 为 TP/(TP+FP)=8/(8+4)=0.666 召回率R TP/(TP+FN)=8/(8+6)=0.571 所以F1-micro的值为:0.6153
macro先要计算每一个类的F1,有了上面那个表,计算各个类的F1就很容易了,比如1类,它的精确率P=3/(3+0)=1 召回率R=3/(3+2)=0.6 F1=2*(1*0.5)/1.5=0.75,然后再求平均。
所以可以有两种计算方式,得出的结构也不相相同,根据需求自行选择。

参考:https://www.cnblogs.com/techengin/p/8962024.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/142918
推荐阅读
相关标签
  

闽ICP备14008679号