混淆矩阵

混淆矩阵(Confusion Matrix):将分类问题按照真实情况与判别情况两个维度进行归类的一个矩阵,如在二分类问题中就是一个2*2的矩阵:
在这里插入图片描述

  • TP(True Positive):表示实际为真预测为真
  • FP(False Positive):表示实际为假预测为真 (误报)
  • TN(True Negative):表示实际为假预测为假
  • FN(False Negative):表示实际为真预测为假(漏报)

召回率与准确率

召回率 = TP/(TP+FN)
准确率 = TP/(TP+FP)

一个池塘有10条鱼和20只小龙虾,渔夫打鱼,捞上8条鱼和12只龙虾,那么召回率为8/10=80%,准确率为8/(8+12)=40% —《Web安全之强化学习与GAN》

准确度Accuracy

准确度Acc是对检测结果的均衡评价,是全体预测正确按整个样本的比例:
准确度 = T P + T N T P + T N + F P + F N 准确度 = \frac{TP+TN}{TP+TN+FP+FN} 准确度=TP+TN+FP+FNTP+TN

sklearn代码示例

pip install scikit-learn==0.24.2

from sklearn import metrics # sklearn==0.24.2
import numpy as np

test_Y =    np.array([0,0,1,0,0,1,0,1,1,0]) # 测试集的标签
predict_Y = np.array([1,0,1,0,0,0,0,1,0,0]) # 预测值

confusion_matrix = metrics.confusion_matrix(test_Y,predict_Y)       # 混淆矩阵(注意与上面示例的混淆矩阵的图位置并不一一对应)
tn, fp, fn, tp = metrics.confusion_matrix(test_Y,predict_Y).ravel() # 混淆矩阵各值
recall_score = metrics.recall_score(test_Y,predict_Y)               # 召回率
pre_score = metrics.precision_score(test_Y,predict_Y)               # 准确率
ACC = metrics.accuracy_score(test_Y,predict_Y)                      # 准确度ACC

print(confusion_matrix)
print(tn, fp, fn, tp)
print(recall_score)
print(pre_score)
print(ACC)
[[5 1]
 [2 2]]
5 1 2 2
0.5
0.6666666666666666
0.7
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐