Разбор

F1-score в машинном обучении: формула, пример и ограничения

Разбираем precision, recall и F1 на учебном примере поиска проблемных заказов. Почему важны выбранный класс, порог и способ усреднения.

• • 2 мин чтения

F1-score объединяет precision и recall в одну метрику классификации. Она помогает сравнивать баланс между найденными нужными случаями и ошибочными срабатываниями. Для интерпретации нужно знать, какой класс считается положительным и по какому порогу принимается решение.

Один высокий F1 ещё не показывает экономическую пользу системы. Ложное предупреждение и пропущенная проблема могут иметь очень разную цену, а метрика не задаёт эту цену автоматически.

Сначала назовите положительный класс

В вымышленном примере модель ищет заказы с риском задержки. Положительный класс - задержка. Истинно положительный результат, TP, означает правильно найденную задержку. FP обозначает ложное предупреждение, FN - пропущенную задержку.

Допустим, модель правильно отметила 30 задержек, ошибочно предупредила о десяти обычных заказах и пропустила 20 задержек. Эти числа взяты для демонстрации расчёта и не относятся к реальному магазину.

Precision показывает, какая доля предупреждений оказалась верной: 30 / (30 + 10) = 0,75. Recall показывает, какая доля всех задержек найдена: 30 / (30 + 20) = 0,6.

Как получается F1

F1 - гармоническое среднее precision и recall. Для чисел примера получаем 2 × 0,75 × 0,6 / (0,75 + 0,6), то есть примерно 0,667.

Тот же результат можно получить напрямую по счётчикам: 2 × TP / (2 × TP + FP + FN). Здесь это 60 / 90. Если один из двух исходных показателей низок, высокий второй показатель не сможет полностью компенсировать его в F1.

Функция f1_score в scikit-learn реализует расчёт с несколькими вариантами усреднения. При отсутствии положительных примеров или предсказаний нужно явно проверить правила обработки неопределённых значений, а не молча сравнивать получившиеся числа.

Порог меняет результат

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

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

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

Что означают macro и micro

При нескольких классах метрики можно усреднять по-разному. Macro усредняет показатели классов с одинаковым весом. Weighted учитывает число примеров каждого класса. Micro сначала объединяет счётчики соответствующих ошибок и совпадений.

Поэтому «F1 = 0,8» без указания варианта может скрывать разные результаты. В многоклассовой задаче проверьте также показатели каждого класса: хорошее усреднение способно маскировать слабую работу на редкой категории.

Когда F1 недостаточно

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

Сравнивайте модели на одинаковой выборке и с одинаковыми правилами. Начать стоит с понятного исходного ориентира: baseline в машинном обучении. Он поможет увидеть, что именно улучшилось, кроме одного итогового числа.

Источники

Обсуждение

    Пока без комментариев. Будьте первым.

    Войдите, чтобы отправить комментарий

    Вы сможете комментировать статьи, сохранять материалы

    или войдите по email

    Бесплатная диагностика · 30 минут · без обязательств

    Маркетинг работает, но продажи не растут?

    Отвечу на 3–5 вопросов о вашем бизнесе — и мы вместе разберём, где именно теряются клиенты и что с этим делать.

    Без продаж. Без навязчивых звонков.