混淆矩阵

混淆矩阵(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

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐