You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码从混淆矩阵提取真阳、真阴、假阳、假阴对应样本数据集

实现方案

你可以通过numpy.select(可读性更高)或者扩展嵌套np.where的方式实现四类结果的标记,同时可以额外新增字段标注是否为正确预测。

方法1:使用numpy.select(更推荐,逻辑清晰易维护)

import pandas as pd
import numpy as np

df_test = pd.DataFrame(x_test)
# 定义四个分类的判断条件
conditions = [
    (y_test == 1) & (y_pred == 1), # 真阳性
    (y_test == 0) & (y_pred == 0), # 真阴性
    (y_test == 0) & (y_pred == 1), # 假阳性
    (y_test == 1) & (y_pred == 0)  # 假阴性
]
# 定义条件对应的分类标签
labels = [
    'true positive',
    'true negative',
    'false positive',
    'false negative'
]
# 生成分类结果列
df_test['case'] = np.select(conditions, labels)
# 新增字段标记是否为正确预测,满足你同时标注正确分类的需求
df_test['is_correct_prediction'] = df_test['case'].isin(['true positive', 'true negative'])

df_test.head(5)

方法2:扩展嵌套np.where(和你原有写法逻辑一致)

如果你不想调整原有代码的结构,也可以直接扩展嵌套层级实现:

import pandas as pd
import numpy as np

df_test = pd.DataFrame(x_test)
df_test['case'] = np.where(
    (y_test == 1) & (y_pred == 1), 'true positive',
    np.where(
        (y_test == 0) & (y_pred == 0), 'true negative',
        np.where(
            (y_test == 0) & (y_pred == 1), 'false positive',
            'false negative'
        )
    )
)
# 新增正确预测标记字段
df_test['is_correct_prediction'] = ~df_test['case'].str.contains('false')

df_test.head(5)

后续你可以直接通过条件筛选取出对应分类的样本,比如提取所有假阴性样本的代码为df_test[df_test['case'] == 'false negative']。

内容的提问来源于stack exchange,提问作者Ankita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:27:03