首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >`(model.predict(img) > 0.5).astype(np.int32)` (即0.5 )中的阈值是否固定?

`(model.predict(img) > 0.5).astype(np.int32)` (即0.5 )中的阈值是否固定?
EN

Stack Overflow用户
提问于 2021-11-15 20:16:25
回答 1查看 60关注 0票数 0

阈值应该始终是0.5,还是可以根据需要进行调整?我试图通过分析每一帧来检测视频中的火灾。当我这样做时,当我的置信度阈值(confidence = model.predict(img))为0.5时,我会得到很多假阴性。那么,我是否真的可以调整该值以获得更好的结果,或者这就像是欺骗了模型的预测?

这是我的代码:

代码语言:javascript
运行
复制
from keras.preprocessing import image
import numpy as np
i = cv2.imread(img)
img = image.load_img(img,target_size=(250,250))
img = image.img_to_array(img)
img = np.expand_dims(img,axis=0)
img = img / 255

res = (model.predict(img) > 0.5).astype(np.int32)
if res == 0:
    print('Fire Detected')
else:
    print('No Fire Detected.')
EN

回答 1

Stack Overflow用户

发布于 2021-11-16 00:37:26

您不必使用0.5的阈值。它是这样的,因为典型的分类模型最大限度地提高了准确性,对于这个度量,0.5是最有意义的。然而你的问题可能是不同的,也许你更关心精确度而不是召回率?然后,调整阈值是调整模型的方法之一(例如,通过绘制ROC曲线来查看可能的权衡)。然而,这是一种有点天真的方式,人们也可以事先问自己“我的实际目标是什么”,并从一开始就最大化这个指标,而不是最大化准确性,然后通过posthoc调整阈值来调整不同的阈值。例如,为了解决正/负类别之间的不平衡,你可以考虑类别权重等(这将有效地最大化加权精度)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69980343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档