2017-01-14 30 views
3

Каково пороговое значение binary_accuracy в керах Метрики используются для прогнозирования одного образца как положительного и отрицательного случаев? что пороговое значение 0,5? как его настроить? Я хочу установить пороговое значение 0,80, если прогнозируемое значение равно 0,79, то оно считается отрицательным образцом, в противном случае, если прогнозируемое значение равно 0,81, то оно считается положительным образцом.binary_accuracy in keras Metrices, каково пороговое значение для предсказания одного образца как положительных и отрицательных случаев

+0

Пожалуйста, прежде чем сделать вопросы здесь, что вам нужно удостоверяйте лучший способ сделать это (а также улучшить английский). Итак, проверьте [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и обновите его правильно, хорошо? – bosco

ответ

1

binary_accuracy не имеют порогового параметра, но вы можете легко определить его самостоятельно.

import keras 
from keras import backend as K 

def threshold_binary_accuracy(y_true, y_pred): 
    threshold = 0.80 
    if K.backend() == 'tensorflow': 
     return K.mean(K.equal(y_true, K.tf.cast(K.lesser(y_pred,threshold), y_true.dtype))) 
    else: 
     return K.mean(K.equal(y_true, K.lesser(y_pred,threshold))) 

a_pred = K.variable([.1, .2, .6, .79, .8, .9]) 
a_true = K.variable([0., 0., 0., 0., 1., 1.]) 

print K.eval(keras.metrics.binary_accuracy(a_true, a_pred)) 
print K.eval(threshold_binary_accuracy(a_true, a_pred)) 

Теперь вы можете использовать его как metrics=[threshold_binary_accuracy]

+0

Итак, если нужно установить 'threshold = 0.5', они должны получить такое же значение, как если бы они просто использовали метрику« точность »по умолчанию, верно? Я получаю дико разные значения, когда я это делаю ... –

0

Чтобы ответить на первый вопрос, keras использует круглую функцию для присвоения классов, поэтому порог 0,5.

https://github.com/fchollet/keras/blob/master/keras/metrics.py

Защиту binary_accuracy (y_true, y_pred): возвращение K.mean (K.equal (y_true, K.round (y_pred)))

 Смежные вопросы

  • Нет связанных вопросов^_^