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

如何在Keras中设置预测阈值并筛选二分类高置信度样本?

在Keras中设置预测阈值 & 筛选高置信度图像

一、自定义预测阈值超简单

Keras做二分类时,默认用sigmoid激活输出层,模型会给出每个样本属于类别1的概率值(范围0到1),默认判定阈值是0.5,但你完全可以根据需求自定义,步骤很直观:

  1. 先获取所有样本的预测概率:
# 假设images是你预处理好的测试图像数组
predict_probs = model.predict(images)

这里predict_probs是形状为(样本数量, 1)的数组,每个元素对应图像属于类别1的概率。

  1. 用自定义阈值生成最终标签:
    比如你觉得0.5的阈值太宽松,想把阈值调到0.7,只把概率≥0.7的图像判定为1:
my_threshold = 0.7
predict_labels = (predict_probs >= my_threshold).astype(int)

这样就完成了自定义阈值的分类判断,调整阈值也只需要改一个数值就行。

二、当然能筛选最可能为1的图像!

通过概率分数排序筛选是最直接的方式,操作也不复杂:

  1. 把概率和图像索引绑定:
    这样排序后还能精准找到对应的原始图像:
# 将每个图像的索引与对应的概率配对
prob_index_pairs = list(enumerate(predict_probs.flatten()))
  1. 按概率从高到低排序:
# 降序排列,让概率最高的样本排在最前面
sorted_pairs = sorted(prob_index_pairs, key=lambda x: x[1], reverse=True)
  1. 提取Top N高置信度图像:
    比如你要取概率最高的前15张:
top_n = 15
# 拿到这些高置信度图像的索引
top_image_indices = [idx for idx, prob in sorted_pairs[:top_n]]
# 从原始图像数组中取出对应的图像
top_confident_images = images[top_image_indices]
# 还可以顺便获取它们的置信度分数
top_confidence_scores = [prob for idx, prob in sorted_pairs[:top_n]]

这样你就得到了最符合类别1特征的一批图像,还能看到它们的具体置信度数值。

小提醒

  • 阈值选择要贴合你的需求:如果怕把非1的图像误判成1,就调高阈值;如果不想漏掉任何可能是1的图像,就降低阈值。
  • 没必要特意修改模型结构来集成阈值逻辑,手动处理概率的方式更灵活,随时调整阈值都不用重新训练模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:57:27