Как рассчитать F1 Score в Python (включая пример)

Как рассчитать F1 Score в Python (включая пример)

При использовании моделей классификации в машинном обучении общей метрикой, которую мы используем для оценки качества модели, является F1 Score .

Этот показатель рассчитывается как:

Оценка F1 = 2 * (Точность * Отзыв) / (Точность + Отзыв)

куда:

  • Точность : правильные положительные прогнозы по отношению к общему количеству положительных прогнозов.
  • Вспомнить : исправить положительные прогнозы по отношению к общему количеству фактических положительных результатов.

Например, предположим, что мы используем модель логистической регрессии, чтобы предсказать, попадут ли 400 разных баскетболистов из колледжа в НБА.

Следующая матрица путаницы суммирует прогнозы, сделанные моделью:

Вот как рассчитать оценку F1 модели:

Точность = истинный положительный результат / (истинный положительный результат + ложный положительный результат) = 120/(120+70) = 0,63157

Отзыв = истинно положительный / (истинно положительный + ложноотрицательный) = 120 / (120 + 40) = 0,75

Оценка F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) =.6857

В следующем примере показано, как рассчитать оценку F1 для этой точной модели в Python.

Пример: расчет F1 Score в Python

В следующем коде показано, как использовать функцию f1_score() из пакета sklearn в Python для вычисления оценки F1 для заданного массива прогнозируемых и фактических значений.

import numpy as np
from sklearn. metrics import f1_score

#define array of actual classes
actual = np.repeat([1, 0], repeats=[160, 240])

#define array of predicted classes
pred = np.repeat([1, 0, 1, 0], repeats=[120, 40, 70, 170])

#calculate F1 score
f1_score(actual, pred)

0.6857142857142857

Мы видим, что оценка F1 составляет 0,6857.Это соответствует значению, которое мы рассчитали ранее вручную.

Примечание.Полную документацию по функции f1_score() можно найти здесь .

Примечания по использованию очков F1

Если вы используете оценку F1 для сравнения нескольких моделей, модель с наивысшей оценкой F1 представляет собой модель, которая лучше всего способна классифицировать наблюдения по классам.

Например, если вы подгоняете другую модель логистической регрессии к данным, и эта модель имеет показатель F1 0,75, эта модель будет считаться лучшей, поскольку она имеет более высокий показатель F1.

Дополнительные ресурсы

Как выполнить логистическую регрессию в Python
Как создать матрицу путаницы в Python
Как рассчитать сбалансированную точность в Python
Оценка F1 против точности: что использовать?

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.