机器学习

机器学习算法中的准确率、精确率、召回率和F值

2019-08-09  本文已影响0人  一位学有余力的同学

机器学习中有三个评价指标,即准确率(accuracy)、精确率(precision)、召回率(recall)和F值(F-measure)。下面对它所表达的意思进行讲解。

分类为题

对于一个二分类问题,它有四种情况:
如果一个实例是正类,它被分为正类,记为 真正(True Positive);
如果一个实例是正类,它被分为负类,记为 假负(False Negative);
如果一个实例是负类,它被分为正类,记为 假正(False Positive);
如果一个实例是负类,它被分为负类,记为 真负(True Negative)。
在表格中可以表示为:

真实1 真实0
预测1 TP FP
预测0 FN TN

准确率、精确率、召回率、F值

1.准确率(Accuracy)
即所有预测都正确的比率:
accuracy = \frac{TP+TN}{TP+FP+FN+TN}

2.精确率(Precision)
查准率,全部预测为1中实际标签为1的比率:
precision = \frac{TP}{TP+FP}

3.召回率(Recall)
查全率,实际标签为1中正确预测为1的比率:
recall = \frac{TP}{TP+FN}

4.F值(F-measure)
F-measure是Precision和Recall的加权调和平均:
F = \frac{(\alpha ^{2}+1)P*R}{\alpha ^{2}(P+R)}
当参数α=1时,就是常见的F1,即
F1 = \frac{2*P*R}{(P+R)}
精确度和召回率成负相关,即其中一个变大,另一个就会变小,我没期望两个值都越大越好,所以引入了F值,当精确度和召回率都最大时F值达到最大。

代码实现

from sklearn.metrics import precision_recall_fscore_support
precision, recall, f1score, support = precision_recall_fscore_support(y_true, y_pred, beta=1.0, labels=None, 
pos_label=1, average=None, warn_for=(‘precision’, ’recall’, ’f-score’), sample_weight=None)

详细信息参考官方文档

上一篇下一篇

猜你喜欢

热点阅读