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

如何定位Keras模型中导致准确率偏低的训练样本?

找出拖低模型准确率的训练样本方法

嘿,你的Keras模型已经达到0.9869的准确率,表现相当出色了!要定位那些让准确率无法进一步提升的训练样本,咱们可以通过以下几个步骤来操作:

1. 获取训练集上的预测结果并定位错误样本

首先,你需要让模型对训练数据做预测,然后对比真实标签找出分类错误的样本。在你的训练代码之后添加这段代码:

# 生成训练集的预测概率
y_pred = model.predict(x_nyha, verbose=1)
# 将概率转换为二分类标签(阈值设为0.5,和你的sigmoid输出匹配)
y_pred_classes = (y_pred > 0.5).astype(int)
# 找出所有预测错误的样本索引
misclassified_indices = np.where(y_pred_classes != y_nyha)[0]

print(f"总共找到 {len(misclassified_indices)} 个错误分类的训练样本")

2. 提取错误样本并分析原因

找到错误样本的索引后,你需要对应到原始文本(因为x_nyha是预处理后的特征,你肯定有对应的原始输入文本对吧?),分析这些样本为什么会被模型错判。比如是文本存在歧义、标注有误,还是样本包含特殊噪声?

假设你有一个存储原始文本的列表original_training_texts,和x_nyha的样本一一对应,你可以用这段代码查看错误样本的细节:

# 遍历错误样本,打印关键信息
for idx in misclassified_indices:
    print(f"样本索引:{idx}")
    print(f"真实标签:{y_nyha[idx]}")
    print(f"预测标签:{y_pred_classes[idx][0]}")  # 适配模型Flatten后的输出结构
    print(f"原始文本:{original_training_texts[idx]}")
    print("----------------------------------------")

3. 深入分析模型的不确定性样本

除了明确错分的样本,那些模型预测概率接近0.5的样本(模型最不确定的样本)也值得关注——这些样本往往是边界案例,也是限制准确率提升的关键。你可以这样找到它们:

# 找出预测概率在0.4到0.6之间的样本(阈值可根据需求调整)
uncertain_indices = np.where((y_pred > 0.4) & (y_pred < 0.6))[0]

print(f"找到 {len(uncertain_indices)} 个模型难以判断的样本")

额外建议

  • 检查标注质量:很多时候错误样本是因为标注有误,比如把本该是0的样本标成了1,这部分可以人工核对修正。
  • 分析错误类型:统计是把正类错判为负类多,还是反过来,这能帮你判断模型是否存在偏向性。
  • 查看样本特征:比如错误样本的文本长度、是否包含罕见词汇、语义复杂度等,这些可能是模型的薄弱点。

内容的提问来源于stack exchange,提问作者Geeth Govind S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:21:01