Узнайте, как использовать кривую ROC (Receiver Operating Characteristic) для оценки бинарных классификаторов. Изучите компромиссы между TPR и FPR с помощью Ultralytics .
Кривая ROC (Receiver Operating Characteristic) — это фундаментальный графический инструмент, используемый для оценки эффективности бинарных классификационных моделей. В области машинного обучения (ML) она визуализирует компромисс между чувствительностью модели и ее специфичностью по всем возможным пороговым значениям принятия решений. В отличие от однозначных метрик, таких как точность, которые могут быть вводящими в заблуждение, если набор данных несбалансирован, кривая ROC предоставляет всестороннее представление о том, как ведет себя классификатор, когда критерии идентификации положительных экземпляров становятся более или менее строгими. Эта визуализация необходима инженерам, использующим методы обучения с учителем, для определения оптимальной рабочей точки для их конкретного случая использования.
Чтобы понять кривую ROC, необходимо рассмотреть два параметра, нанесенных на график друг относительно друга: коэффициент истинных положительных результатов (TPR) и коэффициент ложных положительных результатов (FPR).
Кривая иллюстрирует динамическую взаимосвязь: по мере снижения порога достоверности для выявления большего количества положительных случаев (увеличение TPR) неизбежно возрастает риск неправильного выявления отрицательных случаев (увеличение FPR). Идеальный классификатор достиг бы верхнего левого угла графика, что означало бы 100% чувствительность и 0% ложных срабатываний. Модель, которая делает случайные предположения, будет отображаться в виде диагональной линии от нижнего левого угла к верхнему правому. Общая производительность часто оценивается по площади под кривой (AUC), где значение 1,0 означает идеальный результат.
Решение о том, где установить порог на кривой ROC, полностью зависит от стоимости ошибок в конкретной отраслевой области применения.
Для построения ROC-кривой нужны исходные вероятности прогнозирования, а не только окончательные метки классов. В следующем примере используется современная модель YOLO26 для генерации оценок классификации.
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")
После сбора этих вероятностей для набора валидации разработчики могут использовать библиотеки, такие как Scikit-learn, для вычисления точек кривой. Для управления наборами данных и отслеживания этих показателей во времени Ultralytics предлагает интегрированные инструменты для оценки и развертывания моделей.
Важно отличать кривую ROC от других инструментов оценки: