我正在使用 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)
但这给出的值比二进制精度给出的值低得多。二进制精度甚至是用于多类问题的适当指标吗?如果是这样,有人知道我哪里出错了吗?