首页 > 解决方案 > 从混淆矩阵中获取假阴性、假阳性、真阳性和真阴性的相关数据集

问题描述

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

#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显示所有这些标签结果数据集:假阴性、假阳性、真阳性、真阴性和正确预测?提前致谢

标签: pythonpandasdataframeconfusion-matrix

解决方案


您可以创建一个标签数组,然后使用 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]

推荐阅读