【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

文章目录

混淆矩阵

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

【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)
  • 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 +FN TP +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

Original: https://blog.csdn.net/AwesomeP/article/details/126890506
Author: 宛如近在咫尺
Title: 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/614843/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球