文章目录
混淆矩阵
混淆矩阵(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 +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/
转载文章受原作者版权保护。转载请注明原作者出处!