2017-01-14 7 views
3

케 라스에서 binary_accuracy의 임계 값은 무엇입니까? 메트릭스는 한 샘플을 양수 및 음수로 예측하는 데 사용됩니까? 그 문턱 값은 0.5입니까? 그것을 조정하는 방법? 임계 값 0.80을 설정하려면 예측 값이 0.79이면 음의 샘플로 간주하고 그렇지 않으면 예측 값이 0.81이면 양의 샘플로 간주됩니다.keras에서의 binary_accuracy 메트릭스에서 한 샘플을 양수 및 음수로 예측하는 임계 값은 무엇입니까

+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

따라서 임계 값 = 0.5를 설정하는 경우 기본 "정확도"미터를 사용한 것과 동일한 값을 얻게됩니다. 맞습니까? 이 일을 할 때 크게 다른 값을 얻고 있습니다 ... –