Каково пороговое значение binary_accuracy
в керах Метрики используются для прогнозирования одного образца как положительного и отрицательного случаев? что пороговое значение 0,5? как его настроить? Я хочу установить пороговое значение 0,80, если прогнозируемое значение равно 0,79, то оно считается отрицательным образцом, в противном случае, если прогнозируемое значение равно 0,81, то оно считается положительным образцом.binary_accuracy in keras Metrices, каково пороговое значение для предсказания одного образца как положительных и отрицательных случаев
ответ
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]
Итак, если нужно установить 'threshold = 0.5', они должны получить такое же значение, как если бы они просто использовали метрику« точность »по умолчанию, верно? Я получаю дико разные значения, когда я это делаю ... –
Чтобы ответить на первый вопрос, 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)))
Пожалуйста, прежде чем сделать вопросы здесь, что вам нужно удостоверяйте лучший способ сделать это (а также улучшить английский). Итак, проверьте [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и обновите его правильно, хорошо? – bosco