机器学习算法中的准确率、精确率、召回率和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)
即所有预测都正确的比率:
2.精确率(Precision)
查准率,全部预测为1中实际标签为1的比率:
3.召回率(Recall)
查全率,实际标签为1中正确预测为1的比率:
4.F值(F-measure)
F-measure是Precision和Recall的加权调和平均:
当参数α=1时,就是常见的F1,即
精确度和召回率成负相关,即其中一个变大,另一个就会变小,我没期望两个值都越大越好,所以引入了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)
详细信息参考官方文档