precision、recall、f1score的计算

python计算precision、recall、f1score

一、介绍TP、TN、FP、FN

二分类中,假设只有正类(1)和负类(0)两个类别,True(1)和False(0)分别表示对和错;Positive(1)和Negative(0)表示预测为正类和负类。

TP:预测为Positive并且对了(样本为正类且预测为正类)
TN:预测为Negative并且对了(样本为负类且预测为负类)
FP:预测为Positive但是错了(样本为负类但预测为正类)
FN:预测为Negative但是错了(样本正类但预测为负类)
precision、recall、f1score的计算_第1张图片

二、介绍precision、recall、f1score

TP+FP: 预测为Positive并且对了+预测为Positive但是错了=预测为Positive的样本总数
所以,precision表示为:被正确预测的Positive样本 / 被预测为Positive的样本总数
在这里插入图片描述

TP+FN: 预测为Positive并且对了+预测为Negative但是错了=实际为Positive的样本总数
所以,recall表示为:被正确预测的Positive样本 / 实际为Positive的样本总数
在这里插入图片描述

f1score是调和平均值,precision和recall只要一个比较小的话,f1score的值也会被拉下来:
在这里插入图片描述

三、python调用sklearn包实现

from sklearn.metrics import precision_score, recall_score, f1_score

y_true = [0, 1, 0, 1, 0, 1]

y_pred = [0, 0, 0, 1, 0, 1]

print('binary------------')
print("precision: {}".format(precision_score(y_true, y_pred, average='binary')))
print("recall: {}".format(recall_score(y_true, y_pred, average='binary')))
print("f1: {}".format(f1_score(y_true, y_pred, average='binary')))

运行结果:
precision、recall、f1score的计算_第2张图片

你可能感兴趣的:(precision、recall、f1score的计算)