一些算法中的准确率、精确率、召回率和F值

目录

1.准确率(Accuracy)

2.精确率(Precision)

3.召回率(Recall)

4.F值(F-measure)

利用Python中的sklearn实现上述公式计算


以分类问题为例

  标签1 标签0
预测1 TP FP
预测0 FN TN

1.TP(True Positive)真正例:表示预测为真,实际也为真

2.FP(False Positive)假正例:表示预测为真,实际为假

3.TN(True Negetive)真负例:表示预测为假,实际为假

4.FN(False Negetive)假负例:表示预测为假,实际为真

扫描二维码关注公众号,回复: 12620311 查看本文章

1.准确率(Accuracy)

所有预测都正确的比率:ACC=\frac{TP+TN}{TP+FP+FN+TN}

2.精确率(Precision)

查准率,正确预测为正占全部预测为正的比例,全部预测为1中实际标签为1的比率:Precision=\frac{TP}{TP+FP}

3.召回率(Recall)


查全率,正确预测为正占全部正样本的比例。实际标签为1中正确预测为1的比率:rechall=\frac{TP}{TP+FN}

4.F值(F-measure)


F-measure是Precision和Recall的加权调和平均:F=\frac{(\alpha ^{2}+1)P*R}{\alpha ^{2}(P+R)}

\alpha =1F=\frac{2*P*R}{P+R}

利用Python中的sklearn实现上述公式计算

方法一

# 构建混淆矩阵
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test_labels, y_pred_labels)
 
# 精准率与召回率
from sklearn.metrics import accuracy_score, precision_score, recall_score
print(accuracy_score(y_test_labels, y_pred_labels))
print('-========')
print(precision_score(y_test_labels, y_pred_labels))
print('-========')
print(recall_score(y_test_labels, y_pred_labels))
 
# f1 score
from sklearn.metrics import f1_score
f1_score(y_test_labels, y_pred_labels)

方法二

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)

猜你喜欢

转载自blog.csdn.net/zangba9624/article/details/105954268