저는 Keras를 사용하여 여러 클래스 분류 문제를 해결하기 위해 이진 정확도와 범주 적 정확도를 메트릭으로 사용하고 있습니다. 모델을 평가할 때 바이너리 정확도는 매우 높고 범주 정확도는 상당히 낮습니다. 나 자신의 코드에서 이진 정확도 메트릭을 다시 만들려고했지만 많은 행운이 없다. 여기Keras 이진 정확도 메트릭이 너무 높은 정확도를 제공합니다.
def binary_accuracy(y_true, y_pred):
return K.mean(K.equal(y_true, K.round(y_pred)), axis=-1)
내 코드입니다 :
from keras import backend as K
preds = model.predict(X_test, batch_size = 128)
print preds
pos = 0.00
neg = 0.00
for i, val in enumerate(roundpreds):
if val.tolist() == y_test[i]:
pos += 1.0
else:
neg += 1.0
print pos/(pos + neg)
는하지만 이진 정밀도에 의해 주어진 것보다 훨씬 낮은 값을 제공 나의 이해는 이것이 내가 다시 작성해야하는 과정 인 것입니다. 바이너리 정확도가 멀티 클래스 문제에서 사용하기에 적합한 메트릭인가? 그렇다면 누군가 내가 잘못 가고있는 것을 알고 있습니까?
다중 음영 문제에는 이진 정확도를 사용하지 않아야합니다. 결과는 이해가되지 않습니다. –