大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
一、F1 score概念?
F1 score是分类问题的一个衡量指标,一些多分类问题的机器学习竞赛,常把F1 score作为最终评测的方法。它是精确率和召回率的调和平均数,取值0-1之间。
F1 score认为召回率和精确率同样重要,而F2认为召回率的重要程度是精确率的2倍,F0.5则认为召回率的重要程度是精确率的一半。
要明确几个概念
- TP(True Positive): 被判定为正样本,实际为正样本
- TN(True Negative): 被判定为负样本,实际为负样本
- FP(False Positive): 被判定为正样本,实际为负样本
- FN(False Negative): 被判定为负样本,实际为正样本
- accuracy:准确率,针对所有样本而言,即所有实际正负样本中,判定正确的样本所占的比例。accuracy = (TP + TN)/(TP + TN + FP + FN)
- precision:精确率(又称为查准率),针对所有判定为正的样本而言,即所有判定为正的样本中,实际为正的样本所占的比例。precision = TP/(TP + FP)
- recall:召回率(又称为查全率),针对所有实际为正的样本而言,即所有实际为正的样本中,判定为正的样本所占的比例。recall = TP/(TP + FN)
注意:上述所有正负样本描述是针对二分类问题而言,如果是多分类问题,则上述正样本代表第k类样本,负样本代表所有其他类样本。
二、F1 score如何计算?
- 首先分别计算每一类样本的精确率和召回率;
- 然后分别计算每一类的F1 score:
- 最后对所有类别的F1 score求均值,得到最终结果:
三、python如何实现?
可以通过调用sklearn包实现
函数介绍:
sklearn.metrics.f1_score(y_true, y_pred, labels=None, pos_label=1, average=’binary’, sample_weight=None)
- y_true: 真实类别,1d array-like, or label indicator array / sparse matrix.
- y_pred: 预测类别,1d array-like, or label indicator array / sparse matrix.
- average: string,[None, ‘binary’(default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’],如果二分类则选binary,如果考虑类别的不平衡性,需要计算类别的加权平均,则使用‘weighted’;如果不考虑类别的不平衡性,计算宏平均,则使用‘macro’。
代码示例:
from sklearn.metrics import f1_score
y_true = [0,0,0,1,1,2]
y_pred = [0,0,1,1,2,2]
print(f1_score(y_true, y_pred, average='weighted'))
print(f1_score(y_true, y_pred, average='macro'))
参考:
https://blog.csdn.net/qq_14997473/article/details/82684300
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182095.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...