[二分类]F1 score

\(F_{1} score\)可以解释为精确度和召回率的加权平均值,相当于精确率和召回率的综合评价指标

当前着重于二分类F1 score

计算

精确率和召回率的计算参考[二分类]PR曲线\(F_{1} score\)的计算公式如下:

\[ F_{1} = \frac {2}{recall^{-1} + precision^{-1}} = 2\cdot \frac {precision\cdot recall}{precision + recall} \]

\(F_{1}\)取值为[0, 1],其中数值为1表示实现了最好的精确率和召回率,数值为0表示性能最差

python

PythonSklearn实现了\(F_{1} score\)的计算

1
def f1_score(y_true, y_pred, labels=None, pos_label=1, average='binary', sample_weight=None):

该函数返回二元分类中正样本的F1 score

  • y_true:一维数组,表示正样本标签
  • y_pred:一维数组,表示分类器预测类别
  • pos_label:字符串或者数值,表示正样本类标签,默认为1

示例

参考[二分类]PR曲线实现二元数据集的提取,分类器的训练和预测。F1-score计算如下:

1
2
3
4
5
6
7
8
from sklearn.metrics import f1_score

classifier = LogisticClassifier()
classifier.train(x_train, train_labels)
res_labels, scores = classifier.predict(x_test)

f1 = f1_score(test_labels, res_labels)
print(f1)

相关阅读