Recall
Полнота, или чувствительность, — это доля реальных положительных объектов, найденных моделью: TP / (TP + FN). Как пороги влияют на компромисс с точностью и как полноту вычисляют детекторы.
Полнота — это доля фактических положительных случаев, которые модель правильно определила. Она отвечает на вопрос: «Какую долю всего, что нужно было найти, модель действительно нашла?» Полноту вычисляют как отношение истинно положительных результатов ко всем фактическим положительным случаям: полнота = TP / (TP + FN), где ложноотрицательный результат (FN) — положительный случай, который модель пропустила. Значение полноты лежит в диапазоне от 0 до 1; полнота 0.90 означает, что модель пропускает один из десяти положительных случаев. Чувствительность, доля истинно положительных результатов (TPR) и доля обнаружений — синонимы. Доля пропусков, или доля ложноотрицательных результатов, равна единице минус полнота. Полнота особенно важна, если пропуск дорого обходится, например при необнаруженной опухоли на скрининговом снимке или когда система сигнализации не замечает злоумышленника.
Как вычисляется полнота#
Для расчёта полноты используются две ячейки матрицы ошибок: истинно положительные результаты и ложноотрицательные результаты, которые вместе охватывают все фактические положительные случаи. Ложноположительные и истинно отрицательные результаты в формулу не входят, поэтому модель, которая относит всё к положительному классу, достигает идеальной полноты 1.0, но становится бесполезной. Поэтому полноту указывают вместе с точностью, TP / (TP + FP), которая учитывает именно эти ложные срабатывания. Например, если модель скрининга обнаружила 90 из 100 опухолей в тестовой выборке, её полнота равна 0.90 независимо от числа здоровых снимков, которые она тоже пометила. Точность показывает, сколько из отмеченных случаев действительно оказались положительными.
Если классов больше двух, полноту рассчитывают отдельно для каждого класса, считая его положительным, а все остальные — отрицательными, а затем усредняют. Макроусреднение одинаково взвешивает все классы и выявляет низкие показатели редких классов. В задачах многоклассовой классификации с одним правильным классом микроусреднённая полнота равна доле правильных ответов.
Компромисс между точностью и полнотой#
Большинство моделей выдают оценку, а порог принятия решения превращает её в ответ «да» или «нет». Снижение порога отмечает больше случаев, повышая полноту и обычно снижая точность. Скрипт scikit-learn ниже оценивает 15 деталей, 5 из которых дефектные, при трёх порогах:
import numpy as np
from sklearn.metrics import precision_score, recall_score
# 5 defective parts (1) and 10 good parts (0), with the model's defect score for each
y_true = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
scores = np.array([0.95, 0.80, 0.55, 0.40, 0.20, 0.60, 0.35, 0.30, 0.15, 0.10, 0.10, 0.05, 0.05, 0.05, 0.02])
# Lowering the decision threshold flags more parts as defective
for threshold in (0.7, 0.5, 0.3):
y_pred = scores >= threshold
recall = recall_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
print(f"threshold {threshold}: recall {recall:.2f}, precision {precision:.2f}")При пороге 0.7 модель обнаруживает 2 из 5 дефектов без ложных срабатываний: полнота составляет 0.40, а точность — 1.00. При снижении порога до 0.3 обнаруживаются 4 дефекта, а полнота составляет 0.80, но 3 из 7 отмеченных деталей годные, поэтому точность падает до 0.57. График для всех порогов образует кривую точности-полноты, а показатель F1 или взвешенный по полноте показатель F2 позволяет выбрать на ней одну рабочую точку. В YOLO26 порог параметра предсказания conf задаёт этот компромисс; по умолчанию он равен 0.25. Если снизить его, например до conf=0.1, модель обнаружит более тусклые, мелкие и частично скрытые объекты, но число ложных обнаружений возрастёт.
Полнота в обнаружении объектов#
В задаче обнаружения объектов положительными примерами считаются размеченные объекты на каждом изображении. Размеченный объект считается найденным, только если предсказание того же класса перекрывает его на величину пересечения по отношению к объединению (IoU), равную порогу или превышающую его; часто порог составляет 0.5. Каждое предсказание может соответствовать только одному объекту, поэтому одна рамка, охватывающая двух людей в толпе, обнаружит только одного из них, а второй станет ложноотрицательным результатом.
Полнота детектора зависит от порога достоверности, порога IoU и постобработки. Более строгий порог IoU, например 0.75, снижает полноту для неаккуратно расположенных рамок. Подавление немаксимумов (NMS) может удалить правильные рамки для сильно перекрывающихся объектов, а ограничение числа обнаружений на изображение снижает полноту в плотных сценах. Средняя точность (mAP) учитывает точность при всех уровнях полноты, поэтому каждый ненайденный моделью объект снижает её значение. В оценке COCO также приводится средняя полнота (AR) — максимальная полнота при фиксированном числе обнаружений на изображение, усреднённая по порогам IoU от 0.50 до 0.95; она обозначается AR@1, AR@10 и AR@100.
Как повысить полноту#
- Снизь порог достоверности: самое быстрое решение, но оно приводит к снижению точности.
- Собери и разметь пропущенные объекты: добавь в обучающую выборку примеры условий, при которых модель ошибается, например мелкие, заслонённые или снятые ночью объекты. Анализ ложноотрицательных результатов на валидационных данных покажет, какие примеры нужно добавить.
- Увеличь разрешение входного изображения: мелкие объекты, которые при низком разрешении занимают всего несколько пикселей, становится проще обнаружить при более высоком разрешении.
- Борьба с дисбалансом классов: Функции потерь, такие как фокальная функция потерь, и повторная выборка редких классов не дают модели игнорировать класс меньшинства.
Полнота и связанные термины#
- Точность: Доля положительных предсказаний, которые верны. Полнота показывает, какую часть целевого класса нашла модель, а точность — насколько верно она определила найденное.
- Специфичность: Доля истинноотрицательных результатов, TN / (TN + FP), то есть доля отрицательных примеров, правильно отвергнутых моделью. В медицинских тестах обычно указывают пару показателей: чувствительность и специфичность.
- ROC-кривая: На ней полнота, то есть доля истинно положительных результатов, сопоставляется с долей ложноположительных результатов при различных порогах. Площадь под кривой (AUC) сводит эту оценку к одному числу.
- Доля правильных ответов: Доля всех предсказаний, которые верны. Если положительных примеров 1%, модель, всегда предсказывающая отрицательный класс, покажет 99% правильных ответов и 0% полноты.










