Keras废弃predict_proba后,如何获取模型预测结果的置信度百分比?
二分类Keras模型获取预测置信度的解决方法
从TensorFlow 2.x版本开始,Keras官方正式废弃了predict_proba、predict_classes两个专用预测方法,相关能力已经直接合并到model.predict()方法中,你的场景无需修改模型结构,只需要调整预测后的处理逻辑即可。
你的模型输出层采用sigmoid激活函数,model.predict()返回的结果本身就是0~1区间的正类预测概率,直接基于该数值计算即可:
- 类别判定:默认以0.5为阈值,概率≥0.5判定为正类,反之判定为负类
- 置信度计算:取判定类的对应概率乘以100,保留两位小数就是百分比置信度
你可以直接将预测部分的代码修改为如下逻辑:
# 原有预测代码不变 ynew = model.predict(prepare('dog.9505.jpg')) # 提取概率值,去掉多余维度 prob = ynew[0][0] # 按0.5阈值判定类别,这里假设正类为狗、负类为猫,可根据你自己的标签规则调整 if prob >= 0.5: pred_class = "狗" confidence = prob * 100 else: pred_class = "猫" confidence = (1 - prob) * 100 # 输出结果 print(f"预测类别:{pred_class},置信度:{confidence:.2f}%")
补充说明
如果后续你使用多分类模型,输出层采用softmax激活,model.predict()会返回每个类别的对应概率,取最大概率对应的类别为预测结果,最大概率乘以100就是该类的置信度,规则和二分类兼容。
内容的提问来源于stack exchange,提问作者Bastireal
相关产品推荐
相关产品推荐

