如何获取混淆矩阵中False positives与False negatives对应的数据集
操作步骤
你可以通过比对真实标签y_test和预测标签y_pred的差异,直接筛选出所有错分样本,再进一步区分假阳(False Positive)和假阴(False Negative)样本,具体代码如下:
- 首先将测试集文本、真实标签、预测标签合并为结构化表方便筛选
import pandas as pd # 注意将下方的X_test替换为你自己存储测试集文本的变量名 test_result = pd.DataFrame({ "文本内容": X_test, "真实标签": y_test, "预测标签": y_pred })
- 筛选所有分类错误的样本
wrong_samples = test_result[test_result["真实标签"] != test_result["预测标签"]] # 输出错分样本数量 print(f"错误分类的样本总数:{len(wrong_samples)}") # 直接查看错分样本明细 print(wrong_samples)
- 细分假阳、假阴样本(默认二分类场景,正类标签为
1,负类标签为0,可根据你的实际标签取值调整)
# 假阳样本:真实为负类,预测为正类 fp_samples = test_result[(test_result["真实标签"] == 0) & (test_result["预测标签"] == 1)] # 假阴样本:真实为正类,预测为负类 fn_samples = test_result[(test_result["真实标签"] == 1) & (test_result["预测标签"] == 0)]
补充说明
如果是多分类场景,不需要细分FP/FN的话直接使用第二步得到的wrong_samples即可拿到所有错分数据,要按指定类别筛选错分样本调整筛选条件即可。
内容的提问来源于stack exchange,提问作者Ankita
相关产品推荐
相关产品推荐

