您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页sklearn(九)计算f1_score()

sklearn(九)计算f1_score()

来源:步遥情感网

1.为什么为会有f1这个指标

 

2.f1的定义以及使用

公式:f1 = 2*p*r/(p+r)

f1的值在0和1之间,越大越好。准确率p和召回率r对f1的贡献是相等。

调用:  from sklearn.metrics import f1_score

f1_score (y_true, y_pred, labels=None, pos_label=1, average=’binary’, sample_weight=None)

多分类和多标签情况下,输出结果跟参数average有关系。

1)average : string, [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘weighted’, ‘samples’],有6中取值,意义如下:

  • None:返回每一类各自的f1_score,得到一个array。
  • 'binary':  只对二分类问题有效,返回由pos_label指定的类的f1_score。
  • 'micro': 设置average='micro'时,Precision = Recall = F1_score = Accuracy。整体计算TP,FN,FP
  • 'macro': 对每一类别的f1_score进行简单算术平均(unweighted mean),这类有一个前提假设:每一个类都同等的重要。
  • 'weighted': 对每一类别的f1_score进行加权平均,权重为各类别数在y_true中所占比例。
  • 'samples':用于多标签任务,按照样本维度计算混淆矩阵,然后计算平均值。Calculate metrics for each instance, and find their average (only meaningful for multilabel classification where this differs from accuracy_score).

3.sklearn:从二分类到多分类和多标签

主要内容摘要:

 

4.例子

from sklearn.metrics import f1_score, accuracy_score
y_true = [0, 1, 2, 0, 1, 2, 2]
y_pred = [0, 2, 1, 0, 0, 1, 1]
 
macro = f1_score(y_true, y_pred, average='macro')  
 
micro = f1_score(y_true, y_pred, average='micro')  
 
weighted = f1_score(y_true, y_pred, average='weighted')  
 
none = f1_score(y_true, y_pred, average=None)
 
acc = accuracy_score(y_true, y_pred)
 
print(micro==acc)

 

参考:

1.

2.

3.sklearn:https://scikit-learn.org/stable/modules/model_evaluation.html#average

4.f1比较好的例子:https:///lyb3b3b/article/details/84819931

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务