#machine-learning #scikit-learn #classification #multiclass-classification
Вопрос:
У меня проблема классификации 3-х классов.
Мои предсказанные метки состоят из всех трех классов.
Однако в моих целевых метках присутствуют только 2 из трех классов.
Например:
predicted = [1,1,2,3,2,1]
target = [1,1,2,2,2,1]
Как мне следует вычислять результат Формулы-1 в этом случае?
В настоящее время я использую sklearn
f1_score
функцию s со macro
средним значением.
Но это приводит к низкому значению оценки F1 для случаев, подобных описанным выше.
Ответ №1:
f1_score
предлагает параметр под названием labels
, который позволяет вам определить набор меток для включения в случае, если это average != 'binary'
произойдет .
Например, если вас интересует только производительность вашего классификатора для классов 1
и 2
, вы можете сделать:
from sklearn.metrics import f1_score
predicted = [1, 1, 2, 3, 2, 1]
target = [1, 1, 2, 2, 2, 1]
print(f1_score(target, predicted, average='macro', labels=[1, 2]))
# 0.9