繁体   English   中英

从混淆矩阵中获取假阴性、假阳性、真阳性和真阴性的相关数据集

[英]Getting relevant datasets of false negatives, false positives, true positive and true negative from confusion matrix

我对我的文本数据运行了一个随机分类器,并使用以下代码计算了一个混淆矩阵

#Plot the confusion matrix
plot_confusion_matrix(y_test, y_pred, normalize=False,figsize=(15,8))

在此处输入图像描述

上图是我的混淆矩阵的样子。 现在,我想查看一些属于假阴性、假阳性、真阳性和真阴性的数据集?。 到目前为止编写了以下代码:

import pandas as pd
df_test = pd.DataFrame(x_test)
df_test['case'] = np.where((y_test == 1) & (y_pred == 0), 'false negative', np.where((y_test == 0) & (y_pred == 1), 'false positive', 'correct prediction'))
df_test.head(5)

这段代码给出了假阴性、假阳性和正确的预测,但没有给出真阳性和真阴性。 知道如何修改此代码以便df_test显示所有这些 label 结果数据集:假阴性、假阳性、真阳性、真阴性和正确预测吗? 提前致谢

您可以创建一个标签数组,然后使用 numpy 索引索引:

labels = np.array(['true negative',   # y_test, y_pred = 0,0
                   'false positive',  # y_test, y_pred = 0,1
                   'false negative',  # y_test, y_pred = 1,0
                   'true positive'    # y_test, y_pred = 1,1
                  ])

df_test['case'] = labesl[y_test * 2 + y_pred]

您可以尝试在此处使用numpy.select 例如:

condlist = [
    (y_test == 1) & (y_pred == 1), # True positive
    (y_test == 1) & (y_pred == 0), # False Negative
    (y_test == 0) & (y_pred == 0), # True negative
    (y_test == 0) & (y_pred == 1), # False positive
]

choicelist = ['true positive', 'false negative', 'true negative', 'false positive']

df_test['case'] = np.select(condlist, choicelist)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM