阈值应该始终是0.5,还是可以根据需要进行调整?我试图通过分析每一帧来检测视频中的火灾。当我这样做时,当我的置信度阈值(confidence = model.predict(img))为0.5时,我会得到很多假阴性。那么,我是否真的可以调整该值以获得更好的结果,或者这就像是欺骗了模型的预测?
这是我的代码:
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.')发布于 2021-11-16 00:37:26
您不必使用0.5的阈值。它是这样的,因为典型的分类模型最大限度地提高了准确性,对于这个度量,0.5是最有意义的。然而你的问题可能是不同的,也许你更关心精确度而不是召回率?然后,调整阈值是调整模型的方法之一(例如,通过绘制ROC曲线来查看可能的权衡)。然而,这是一种有点天真的方式,人们也可以事先问自己“我的实际目标是什么”,并从一开始就最大化这个指标,而不是最大化准确性,然后通过posthoc调整阈值来调整不同的阈值。例如,为了解决正/负类别之间的不平衡,你可以考虑类别权重等(这将有效地最大化加权精度)。
https://stackoverflow.com/questions/69980343
复制相似问题