Sklearn f1_score с неожиданными результатами - PullRequest
0 голосов
/ 11 января 2020

Я хочу оценить систему машинного обучения, вычислив f1_score с помощью Scikit-learn для моих прогнозов. Тем не менее, результаты не такие, как ожидалось. Вызов confusion_matrix показывает

[[ 3 11]
 [ 5 31]]

Если я вычисляю оценку f1 вручную как 2 * (точность * отзыв) / (точность + отзыв), я получаю 2 * (3/8 * 31/42) / (3/8 + 31/42) = 0,497. Но вызов f1_score (y_true, y_pred, average = "binary") дает 0,7949. У кого-нибудь есть объяснение?

Даже если я вызову f1_score с постоянными предсказаниями 1, когда истинные метки смешаны, я получаю высокие баллы вместо 0 с предупреждением, которое ожидаю. Я подозреваю, что f1_score - это не то, что я ожидаю для avg = "binary", но я не могу обернуться вокруг него.

Моя версия scikit-learn - 0.21.3.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 11 января 2020

Вы ошиблись при вычислении точности и извлекали значения вручную.

Precision = TruePositives / (TruePositives + FalsePositives)

Recall = TruePositives / (TruePositives + FalseNegatives)

Пожалуйста, укажите пересмотреть свой расчет! Вы получите значение 0,7949, когда поправите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...