Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Confusion Matrix

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

Матрица ошибок — это таблица, которая показывает, насколько предсказания модели классификации совпадают с истинными метками. На одной оси указаны фактические классы, на другой — предсказанные, а в каждой ячейке подсчитываются примеры, попавшие в соответствующую пару. Верные предсказания находятся на диагонали, а все ошибки — вне ее, в ячейках, точно показывающих, какой класс с каким перепутан. Поэтому матрица ошибок — стандартный первый способ изучить ошибки модели и источник показателей точности, точности положительных предсказаний, полноты и F1-меры.

Как читать матрицу ошибок для бинарной классификации#

Для двух классов матрица состоит из четырех ячеек:

  • Истинно положительные (TP): положительные примеры, предсказанные как положительные, например неисправная деталь, отмеченная как неисправная.
  • Ложноположительные (FP): отрицательные примеры, предсказанные как положительные; также называются ошибками I рода или ложными срабатываниями.
  • Ложноотрицательные (FN): положительные примеры, предсказанные как отрицательные; также называются ошибками II рода или пропусками.
  • Истинно отрицательные (TN): отрицательные примеры, предсказанные как отрицательные.

Большинство бинарных метрик — это отношения этих четырех значений. Точность положительных предсказаний равна TP / (TP + FP), полнота — TP / (TP + FN), а точность — (TP + TN), деленное на сумму всех четырех значений. Важность каждой ячейки вне диагонали зависит от приложения: для скрининга рака настраивают низкую долю ложноотрицательных результатов, а для спам-фильтра — низкую долю ложноположительных.

Матрицы ошибок для нескольких классов#

Для N классов матрица имеет размер N × N. В ориентации, принятой в scikit-learn's confusion_matrix, каждая строка соответствует истинному классу, а каждый столбец — предсказанному. Просмотр строки показывает, куда попали примеры этого класса, поэтому отношение диагональной ячейки к сумме по строке равно полноте для класса. Просмотр столбца показывает, чем на самом деле были примеры, предсказанные моделью как этот класс, поэтому отношение диагональной ячейки к сумме по столбцу равно точности положительных предсказаний для класса. Некоторые инструменты отображают транспонированную матрицу, поэтому при чтении графика нужно ориентироваться на подписи осей.

from sklearn.metrics import confusion_matrix

# Истинные и предсказанные метки для 10 изображений
y_true = ["cat", "cat", "cat", "dog", "dog", "dog", "dog", "fox", "fox", "fox"]
y_pred = ["cat", "cat", "dog", "dog", "dog", "dog", "cat", "fox", "dog", "fox"]

# Строки соответствуют истинным классам, а столбцы — предсказанным; порядок меток указан здесь
labels = ["cat", "dog", "fox"]
matrix = confusion_matrix(y_true, y_pred, labels=labels)
print(matrix)

Выведенные строки для классов cat, dog и fox — это [2 1 0], [1 3 0] и [0 1 2]. На диагонали находятся 7 из 10 изображений, поэтому точность равна 0.7. В столбце dog находятся одна кошка и одна лиса, поэтому точность положительных предсказаний для dog равна 3 / 5 = 0.6; из строки dog одно изображение попало в cat, поэтому полнота для dog равна 3 / 4 = 0.75. Нормализованная матрица делит каждую ячейку на общее число примеров истинного класса, поэтому диагональ показывает полноту для каждого класса, а классы с сильно различающимся числом примеров становятся сопоставимыми.

Матрицы ошибок для обнаружения объектов#

Обнаружение объектов добавляет класс «фон», поскольку детектор может выдать рамку там, где ничего нет, или вовсе пропустить объект. Сначала предсказания сопоставляются с метками по пересечению над объединением (IoU), а затем подсчитываются: сопоставленные пары попадают в ячейки классов, несопоставленные предсказания считаются ложноположительными относительно фона, а несопоставленные метки — ложноотрицательными, предсказанными как фон. Ячейка «фон — фон» остается пустой, поскольку пустые области изображения нельзя подсчитать, поэтому в матрице обнаружения нет истинно отрицательных результатов. Валидация YOLO26 строит такую матрицу с дополнительными строкой и столбцом для фона, сопоставляя предсказания с метками при IoU выше 0.45, и сохраняет ее как confusion_matrix.png; предсказанные классы расположены на вертикальной оси, а истинные — на горизонтальной.

from ultralytics import YOLO

# Load a pretrained YOLO26 nano detector
model = YOLO("yolo26n.pt")

# Validation builds the confusion matrix and saves it as confusion_matrix.png
metrics = model.val(data="coco8.yaml")
matrix = metrics.confusion_matrix.matrix  # rows: predicted class, columns: true class

# 80 COCO classes plus one background row and column
print(matrix.shape)

# Class 0 is "person": correct detections and people the model missed
print(f"Person TP: {matrix[0, 0]:.0f}, missed: {matrix[-1, 0]:.0f}")

Размерность — (81, 81), а в последней строке подсчитываются размеченные люди, которым не соответствует ни одно предсказание.

  • ROC-кривая: по одной точке для каждого порога принятия решения; каждая точка суммирует матрицу ошибок этого порога в виде доли истинно положительных и доли ложноположительных результатов.
  • Средняя точность (mAP): основной показатель качества обнаружения, вычисляемый по тем же решениям TP и FP при всех уровнях уверенности, но не показывающий, какие классы перепутаны.
  • Точность: матрица, сведенная к одному числу, — сумма значений на диагонали, деленная на общее число примеров. На наборе данных, где 95% примеров отрицательные, модель, всегда предсказывающая «отрицательный», покажет точность 95%, хотя матрица покажет ноль истинно положительных результатов.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

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

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения