F1-Score
Узнай, как F1-мера балансирует между точностью и полнотой при оценке моделей машинного обучения. Изучи, как оптимизировать производительность Ultralytics YOLO26 для повышения точности.
F1-мера — это важная метрика производительности в машинном обучении, которая объединяет точность и полноту в единое гармоническое среднее. Она особенно полезна для оценки моделей классификации, когда набор данных несбалансирован или когда ложноположительные и ложноотрицательные результаты имеют разную цену. В отличие от обычной доли правильных ответов, которая может вводить в заблуждение, если один класс доминирует в наборе данных, F1-мера дает более сбалансированное представление о способности модели правильно выявлять релевантные объекты, сводя ошибки к минимуму. За счет штрафа за экстремальные значения она гарантирует, что высокий результат будет достигнут только при достаточно высоких точности и полноте, благодаря чему эта метрика широко используется в таких областях, как медицинская диагностика и информационный поиск.
Почему F1-мера важна в машинном обучении#
Во многих реальных сценариях знать только процент правильных предсказаний (accuracy) недостаточно. Например, при обнаружении аномалий обычные случаи значительно многочисленнее аномальных. Модель, которая предсказывает «норма» для каждого входного примера, может достичь точности 99 %, но будет бесполезна для обнаружения реальных проблем. F1-мера решает эту проблему, балансируя две конкурирующие метрики:
- Точность: эта метрика оценивает качество положительных предсказаний. Она отвечает на вопрос: «Из всех объектов, которые модель пометила как положительные, сколько действительно были положительными?»
- Полнота: эта метрика оценивает количество выявленных положительных объектов. Она отвечает на вопрос: «Из всех действительно положительных объектов сколько модель правильно определила?»
Поскольку между ними часто существует компромисс — повышение точности обычно снижает полноту и наоборот, — F1-мера служит единой метрикой для поиска оптимального баланса. Это особенно важно при настройке моделей с использованием оптимизации гиперпараметров, чтобы обеспечить стабильную производительность в различных условиях.
Практические применения#
F1-мера полезна в самых разных отраслях, где цена ошибки высока.
- Медицинская диагностика: В сфере ИИ в здравоохранении, в частности при таких задачах, как обнаружение опухолей, ложноотрицательный результат (необнаруженная опухоль) угрожает жизни, а ложноположительный результат (ошибочная пометка доброкачественной ткани) вызывает ненужную тревогу. F1-мера помогает исследователям оптимизировать модели, такие как YOLO26, чтобы система была достаточно чувствительной для выявления заболеваний, но не перегружала врачей ложными тревогами.
- Информационный поиск и поисковые системы: поисковые системы и системы классификации документов используют F1-меру для оценки релевантности. Пользователи хотят видеть все релевантные документы (высокую полноту), но не хотят просматривать множество нерелевантных результатов (высокую точность). Высокая F1-мера показывает, что система эффективно находит нужную информацию, не перегружая выдачу.
- Фильтрация спама: почтовые сервисы используют классификацию текста для отделения спама. Система должна обнаруживать спам (полнота), но при этом не должна помечать важные рабочие письма как нежелательные (точность). F1-мера служит основным ориентиром для оценки таких фильтров.
Расчет F1-меры с помощью Ultralytics#
Современные фреймворки компьютерного зрения упрощают расчет этих метрик. При обучении моделей обнаружения объектов F1-мера автоматически вычисляется на этапе валидации. Ultralytics Platform визуализирует эти метрики на графиках в реальном времени, позволяя видеть кривую F1-меры при разных порогах уверенности.
Вот как с помощью Python API можно получить метрики валидации, включая компоненты F1-меры:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on a dataset (metrics are computed automatically)
# This returns a validator object containing precision, recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the Mean Average Precision (mAP50-95), which correlates with F1 performance
print(f"mAP50-95: {metrics.box.map}")
# Access precision and recall arrays to manually inspect the balance
print(f"Precision: {metrics.box.p}")
print(f"Recall: {metrics.box.r}")F1-мера и связанные метрики#
Чтобы правильно выбрать инструмент для проекта, важно понимать, чем F1-мера отличается от других критериев оценки.
- Отличие от accuracy: Accuracy одинаково учитывает все ошибки. F1-мера лучше подходит для несбалансированных наборов данных, поскольку сосредоточена на производительности положительного класса (представляющего интерес меньшего класса).
- Связь с mAP: средняя точность (mAP) — стандартная метрика для сравнения моделей обнаружения объектов при всех порогах уверенности. Однако F1-меру часто используют для определения оптимального порога уверенности при развертывании. Для развертывания приложения можно выбрать порог, при котором кривая F1 достигает пика.
- Матрица ошибок: матрица ошибок содержит исходные количества (истинно положительных, ложно положительных результатов и т. д.), на основе которых вычисляется F1-мера. Матрица предоставляет подробную информацию, а F1-мера — один сводный показатель для быстрого сравнения.
- ROC-AUC: площадь под кривой (AUC) измеряет разделимость при всех порогах. F1-мера обычно предпочтительнее ROC-AUC при сильно несбалансированном распределении классов (например, при обнаружении мошенничества, когда случаи мошенничества редки).
Повышение F1-меры#
Если F1-мера твоей модели низкая, могут помочь несколько стратегий. Аугментация данных может увеличить разнообразие положительных примеров и помочь модели лучше обобщать. Трансферное обучение на основе надежных базовых моделей позволяет сети использовать предварительно изученные признаки. Кроме того, корректировка порога уверенности во время инференса позволяет вручную изменить баланс между точностью и полнотой, чтобы максимизировать F1-меру для твоего конкретного сценария использования.









