1

Currently doing a multi-label classifier. I receive suspiciously high accuracies (0.94) calling the evaluate method in keras(the evaluate method returns accuracy and loss). I then tried to program the method manually, as described here: How does Keras evaluate the accuracy?

However, I receive way lower accuracy doing it on my own. F1_mico :0.7157894736842105 Accuracy:0.3530864197530864

I do not understand why. I thought it has to do something with imbalanced classes. The f1_mico value is high, while the f1_macro is around 0.45, so it seems to make sense(I have a hierarchy, so some classes naturally appear more often than others). However, how is keras getting such a high accuracy, it does not make sense to me. The code:

model.compile(optimizer=adam, loss='binary_crossentropy', metrics=['accuracy']) #print("Traning Model...") model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, callbacks=[checkpoint], validation_data=(X_test, y_test)) # starts training print("Testing Model") output = model.predict(X_final, batch_size = batch_size) for pred_i in output: pred_i[pred_i >=0.5] = 1 pred_i[pred_i < 0.5] = 0 print "F1: " + str(f1_score(y_final, output, average='micro')) print "Accuracy: " + str(accuracy_score(y_final, output)) mscores = model.evaluate(X_final, y_final, batch_size = batch_size) print mscores 

Output:

Creating Model... Testing Model F1: 0.7157894736842105 Accuracy: 0.3530864197530864 405/405 [==============================] - 8s 20ms/step ['0.15227678694106914', '0.9422222640779283'] 

1 Answer 1

1

The Acccuracy calculated by keras compares each value of the one-hot encoded vector and looks if it matches. If data is rather sparse this causes the system to have a high accuracy since most values are going to be assigned to zero. The scilearn accuracy only returns one for the data if the complete prediction matches.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.