我正在使用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)
但是这个值要比二元准确性给出的值低得多。在多类问题中使用二元准确性指标是否合适?如果是,有人知道我错在哪里吗?