首页 > 解决方案 > 考虑到所有类,如何找到所有真阳性、阴性和假阳性和阴性

问题描述

我可以对我知道所需输出的较小数据集执行相同的操作

例如:我有数据集:

y_true=[1,1,0,1]
y_pred=[1,0,0,0]

我可以编写函数来查找所有真假阳性和阴性:

def measures(y_pred, y_true):
    TP = 0
    FP = 0
    TN = 0
    FN = 0

    for i in range(len(y_pred)): 
        if y_true[i]==y_pred[i]==1:
           TP += 1
        if y_pred[i]==1 and y_true[i]!=y_pred[i]:
           FP += 1
        if y_true[i]==y_pred[i]==0:
           TN += 1
        if y_pred[i]==0 and y_true[i]!=y_pred[i]:
           FN += 1

    return(TP, FP, TN, FN)

但是,如果我打算为多个标签找到相同的内容,如下所示:

y_true=[1,2,0,1,3]
y_pred=[1,0,3,2,1]

所以我想找到所有考虑到每个标签的 TP_total、TN_total、FP_total 和 FN_total'1','2','0','3'

我怎样才能做到这一点

标签: pythonmachine-learningscikit-learnclassification

解决方案


由于您在问题中添加了标签Scikit-Learn,因此您可以通过使用分类报告和返回您想要的内容的混淆矩阵(示例):

tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()

或者您可以使用Plot Confusion Matrix绘制它。

示例在链接中


以下是一些示例: 在此处输入图像描述

在此处输入图像描述


推荐阅读