Как рассчитать оценку f1 в python (включая пример)
При использовании моделей классификации в машинном обучении общей метрикой, которую мы используем для оценки качества модели, является показатель F1 .
Этот показатель рассчитывается следующим образом:
Оценка F1 = 2 * (Точность * Отзыв) / (Точность + Отзыв)
Золото:
- Точность : правильные положительные прогнозы относительно общего числа положительных прогнозов.
- Напоминание : корректировка положительных прогнозов по сравнению с общим фактическим положительным результатом.
Например, предположим, что мы используем модель логистической регрессии, чтобы предсказать, будут ли 400 баскетболистов из разных колледжей выбраны в НБА.
Следующая матрица путаницы суммирует прогнозы, сделанные моделью:
Вот как можно рассчитать оценку модели в Формуле-1:
Точность = истинно положительный результат / (истинный положительный результат + ложный положительный результат) = 120/ (120+70) = 0,63157
Напомним = истинно положительный результат / (истинный положительный результат + ложный отрицательный результат) = 120 / (120 + 40) = 0,75.
Оценка F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) = . 6857
В следующем примере показано, как рассчитать оценку F1 для этой конкретной модели в Python.
Пример: вычисление оценки F1 в 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 против точности: что использовать?