私は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)
しかし、これはバイナリ精度によって与えられたものよりもはるかに低い値を示します。バイナリの精度は、マルチクラスの問題で使用する適切な指標でもありますか?もしそうなら誰も私がどこに間違っているのか知っていますか?
マルチクラスの問題にバイナリ精度を使用しないでください。結果は意味をなさないでしょう。 –