目录
0、基础
Precision又叫查准率,Recall又叫查全率。这两个指标共同衡量才能评价模型输出结果。
TP, TN, FP, FN的定义
在二分类问题中。
- TP: 预测为1(Positive),实际也为1(Truth-预测对了)
- TN: 预测为0(Negative),实际也为0(Truth-预测对了)
- FP: 预测为1(Positive),实际为0(False-预测错了)
- FN: 预测为0(Negative),实际为1(False-预测错了)
总的样本个数为:TP+TN+FP+FN。
Accuracy/Precision/Recall的定义
- Accuracy = (预测正确的样本数)/(总样本数)=(TP+TN)/(TP+TN+FP+FN)
- Precision = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP)
- Recall = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)
1、简介
最近在学习分类问题的时候,发现多于多分类问题,一般使用acc外,还会使用F1这个重要的评价函数,主要分成F1-macro和 F1-macro这2个指标进行计算。一查发现大家都是使用sklearn这个库来完成的, 发现使用起来及其简单。
在sklearn中的计算F1的函数为 f1_score ,其中有一个参数average用来控制F1的计算方式,也就是当参数取micro和macro时候的区别
2、使用
- 已知精度(precision)、查全率(recall)、F1的计算,是针对于二分类器来说的。他们的计算,只与y_true/y_pred有关,也要求y_true/y_pred中,只含有0和1两个数。
- 对二分类模型来说,可以直接调用sklearn.metrics中的f1_score, precision_score, 和recall_score来进行计算。
- 但对多分类模型来说,y_true/y_pred中可能会有种label(比如y_true=[1,2,3]),应该如何计算其F1/P/R值呢?
- 先上结论,使用如下
也就是穿一个真实标签,直接获取即可。还需要传一个预测标签,这个值需要通过sklearn中的svm对相应数据:X_train, X_test, y_train 进行计算获得
#f1
from sk