Аналитика / Precision, recall

F1-мера классификации для баланса precision и recall

F1 объединяет precision и recall через гармоническое среднее. Метрика полезна, когда нужно одним числом балансировать ложные срабатывания и пропуски, но true negative в расчет не входит.

Опубликовано: Обновлено:

Формула

$$F_1=\frac{2\cdot Precision\cdot Recall}{Precision+Recall}$$

Обозначения

$Precision$
точность положительного класса, доля
$Recall$
полнота положительного класса, доля
$F_1$
гармоническое среднее precision и recall, доля

Условия применения

  • F1 используют после расчета precision и recall для одного и того же положительного класса.
  • Обе исходные метрики получены на одной выборке и при одном пороге.
  • Если precision+recall равны нулю, правило обработки F1 должно быть задано явно.

Ограничения

  • F1 скрывает разные пары precision и recall: один итог может соответствовать разным профилям ошибок.
  • Метрика не учитывает TN, поэтому плохо описывает задачи, где важен отрицательный класс.
  • F1 зависит от выбранного порога и не заменяет анализ стоимости ошибок.

Подробное объяснение

F1-мера классификации связывает исходные наблюдения с итоговой метрикой через запись F_1=\frac{2\cdot Precision\cdot Recall}{Precision+Recall}. Главная польза такой записи в том, что она отделяет сам расчет от обсуждения модели: сначала ясно, какие числа входят в формулу, затем уже оценивается смысл результата. Для F1-score итог читают как гармоническое среднее precision и recall, а не как самостоятельный приговор модели.

Метрики классификации начинаются с матрицы ошибок. Каждое решение попадает в одну из четырех ячеек: верный положительный ответ, верный отрицательный ответ, ложная тревога или пропуск положительного класса. Разные формулы берут разные сочетания этих ячеек и поэтому отвечают на разные вопросы.

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

В прикладной задаче сначала выбирают, какая ошибка дороже: пропуск нужного объекта или лишнее срабатывание. После этого метрику считают на одной проверочной выборке и сравнивают пороги или модели. Такой порядок помогает не подгонять вывод под красивое число, а связать расчет с реальной ценой решения.

Перед подстановкой полезно пересчитать сумму ячеек и убедиться, что она равна числу объектов. Затем проверяют, что положительный класс выбран одинаково во всех формулах. Это простая защита от самой частой путаницы: поменять местами классы и получить аккуратный, но противоположный по смыслу результат.

Как пользоваться формулой

  1. Определите положительный класс и правило отнесения к нему.
  2. Постройте матрицу ошибок на одной проверочной выборке.
  3. Проверьте, что сумма TP, TN, FP и FN равна числу объектов.
  4. Подставьте счетчики в формулу выбранной метрики.
  5. Сравните результат с соседними метриками и ценой ошибок.

Историческая справка

Метрики классификации сложились на пересечении медицинской диагностики, теории обнаружения сигнала, информационного поиска и машинного обучения. Матрица ошибок как способ разложить решения на верные и неверные исходы стала удобным языком для задач, где важно различать ложную тревогу и пропуск. В середине XX века теория обнаружения сигнала дала ROC-кривые, а информационный поиск развил precision, recall и F-меру.

С ростом машинного обучения эти показатели стали стандартным набором проверки моделей. Их современный вид связан с учебниками, обзорными статьями и практикой соревнований, а не с единственным изобретателем. Формулы выглядят простыми, но исторически за ними стоит важный сдвиг: качество алгоритма стали описывать не одной долей успеха, а несколькими метриками, соответствующими разной цене ошибок.

Для «F1-мера классификации» корректная атрибуция такова: van Rijsbergen, information retrieval.

Историческая линия формулы

Формулу «F1-мера классификации» лучше связывать не с единственным автором, а с развитием темы classification-metrics и практикой статистической проверки моделей. van Rijsbergen, information retrieval. Конкретные имена в источниках задают исторический контекст, но современная запись является результатом коллективной учебной и прикладной традиции.

Пример

Дано: нужно проверить расчет для материала «F1-мера классификации». Берем небольшой набор, где легко проследить каждую строку: precision=0,84, recall=0,808. Требуется получить итоговую метрику и понять, не нарушены ли единицы измерения. Подстановка: 2*0,84*0,808/(0,84+0,808)=1,35744/1,648=0,824. Ответ: F1 = 0,824. Проверка: исходные значения относятся к одной выборке, промежуточные действия не округлялись раньше времени, а итог имеет ожидаемый масштаб. Если увеличить ошибку или число неверных решений, значение метрики изменится в понятную сторону; если вернуть исходные данные в таблицу, сумма и знаменатель совпадают с условием.

Частая ошибка

Для F1-score часто ошибаются в выборе положительного класса: модель «хорошо» работает только потому, что знак класса был прочитан наоборот. Вторая ошибка - смотреть одну метрику при сильном дисбалансе классов; высокая доля верных ответов может скрывать пропуски редких важных объектов. Третья ошибка - менять порог между сравниваемыми расчетами без указания правила. Надежный расчет начинается с матрицы ошибок, проверки суммы ячеек и явного выбора порога.

Практика

Задачи с решением

Контрольная подстановка

Условие. Для формулы «F1-мера классификации» даны учебные значения из примера. Выполните расчет и укажите итог.

Решение. Используем ту же подстановку: 2*0,84*0,808/(0,84+0,808)=1,35744/1,648=0,824. Промежуточные значения не округляем до финального шага.

Ответ. F1 = 0,824

Проверка интерпретации

Условие. Что нужно проверить перед сравнением значения F1-score для двух моделей?

Решение. Нужно убедиться, что использованы одна выборка, одинаковое правило подготовки данных, одинаковый горизонт или порог и одна трактовка положительного класса или ошибки.

Ответ. Сравнение допустимо только при одинаковой базе расчета и одинаковых правилах.

Дополнительные источники

  • Fawcett. An Introduction to ROC Analysis, Pattern Recognition Letters, 2006.
  • Powers. Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness and Correlation, 2011.
  • Hastie, Tibshirani, Friedman. The Elements of Statistical Learning.

Связанные формулы

Аналитика

Accuracy как доля правильных классификаций

$\mathrm{Accuracy}=\frac{TP+TN}{TP+TN+FP+FN}$

Accuracy - доля верных ответов среди всех объектов. Метрика быстро показывает общий уровень классификации, но хорошо читается только при сопоставимых классах и близкой цене ложных тревог и пропусков.

Аналитика

Precision для положительного класса

$\mathrm{Precision}=\frac{TP}{TP+FP}$

Precision показывает, какая часть объектов, помеченных моделью как положительные, действительно положительна. Метрика важна, когда ложные срабатывания дороги: модерация, лиды, диагностика, ручная проверка.

Аналитика

Recall для положительного класса

$\mathrm{Recall}=\frac{TP}{TP+FN}$

Recall показывает, какую долю настоящих положительных объектов модель нашла. Метрика важна, когда опаснее пропустить нужный случай, чем получить лишнее срабатывание: риск, дефекты, заявки.

Аналитика

Specificity классификатора

$\mathrm{Specificity}=\frac{TN}{TN+FP}$

Specificity показывает, какую долю настоящих отрицательных объектов модель оставила отрицательными. Метрика дополняет recall и важна там, где надо ограничить ложные тревоги при фиксированном положительном классе.

Аналитика

ROC AUC через пары объектов

$\mathrm{AUC}=\frac{N_{concordant}+0.5N_{tied}}{N_{positive}N_{negative}}$

ROC AUC оценивает ранжирование: насколько часто положительный объект получает скор выше отрицательного. Метрика не зависит от одного порога, но требует корректных скорингов и выбранного положительного класса.