基于特征的Keras分类模型评估:按性别分析假阳性/假阴性误判
按性别分组统计分类器假阳性/假阴性频次方案
核心逻辑
先为每个样本标记是否属于假阳性(FP:实际年收入≤50k,模型预测>50k)或假阴性(FN:实际年收入>50k,模型预测≤50k),再按gender特征分组统计两类错误的频次,最终输出特征维度的错误统计表格。
具体实现步骤
- 确认数据集包含三列关键数据:
gender(性别)、actual_income(实际标签,建议用0表示≤50k,1表示>50k)、predicted_income(模型预测标签,编码和实际标签一致) - 生成FP和FN的标记列:
- FP标记:
actual_income == 0且predicted_income == 1 - FN标记:
actual_income == 1且predicted_income == 0
- FP标记:
- 按
gender分组,对FP和FN标记列求和得到频次 - 整理成清晰的交叉表格式
Python代码实现(基于Pandas)
import pandas as pd # 替换成你的真实数据集 data = pd.DataFrame({ 'gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Female'], 'actual_income': [0, 1, 1, 0, 0, 1], 'predicted_income': [1, 0, 1, 1, 0, 0] }) # 标记假阳性和假阴性 data['fp_flag'] = (data['actual_income'] == 0) & (data['predicted_income'] == 1) data['fn_flag'] = (data['actual_income'] == 1) & (data['predicted_income'] == 0) # 分组统计频次 gender_error_stats = data.groupby('gender').agg( 假阳性频次=('fp_flag', 'sum'), 假阴性频次=('fn_flag', 'sum') ).reset_index() # 打印结果 print(gender_error_stats)
输出示例
| gender | 假阳性频次 | 假阴性频次 |
|---|---|---|
| Female | 1 | 2 |
| Male | 1 | 0 |
这个结果就是按性别拆分的错误统计,符合你需要的类别-特征维度混淆矩阵形式。
内容的提问来源于stack exchange,提问作者Skobo Do
相关产品推荐
相关产品推荐

