设置Keras CNN的自定义概率阈值

时间:2019-07-24 23:34:36

标签: keras conv-neural-network

很惊讶,我无法在网上快速找到此信息-

训练完CNN之后,我通过跑步来获取预测;

预测= model.predict_generator(test_generator,steps = num_test)

而不是使用 projection_classes = np.argmax(predictions,axis = 1)

我想将阈值设置为大于0.3的概率(被标记为1类),而不是0.5。有快速简便的方法吗?

2 个答案:

答案 0 :(得分:0)

如果它是二进制分类,则可以尝试:

i=0    
while i < len(predictions):
   if(predictions[a]<=0.3):
    predictions[a]=0
   else:
    predictions[a]=0
   i+=1  

如果预测值大于0.3,则应“舍入”为1类

答案 1 :(得分:0)

即使Keras使用0.5来计算binary_accuracy度量标准,在Keras中也没有地方设置这种阈值。您唯一的选择是手动设定预测阈值:

 predictions = model.predict_generator(test_generator, steps=num_test)
 classes = predictions > 0.3