Как оценить мультиклассовую модель Keras с помощью Micro F-Measure? - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу оценить мою мультиклассовую модель в Tensorflow2 / Keras с микро-F-мерами.

Как этого достичь?

Для данной модели

model = tf.keras.models.load_model('NNMODEL.h5')

и

Наборы тестовых данных

testX 
testY 

1 Ответ

1 голос
/ 27 февраля 2020

Самый простой способ - использовать scikit-learn.

На официальной документации вы можете увидеть следующий пример (немного измененный):

from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
result = f1_score(y_true, y_pred, average = None) (an array of f1-scores for each class)
result_micro = f1_score(y_true, y_pred, average='micro') (a float value)

Вам нужно обратить внимание установить для вашего параметра average значение None; таким образом, вы получаете F1 балл за каждый класс в отдельности. Если вы хотите получить общий балл F1 без балла F1 за класс, используйте average = 'micro'.

. Поэтому прогнозируйте каждый элемент в testX, добавляйте прогноз класса в список (это конструирует y_pred из приведенного выше примера), а затем y_true на самом деле является основной истиной, то есть testY в вашем случае.

...