При использовании моделей классификации в машинном обучении общей метрикой, которую мы используем для оценки качества модели, является 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 против точности: что использовать?