Точность и полнота — два разных ответа на вопрос «насколько система хороша». Точность показывает, какая доля помеченного системой оказалась настоящей. Полнота — какую долю настоящего система вообще нашла. Одна цифра без второй не значит ничего, и именно этим пользуются, когда в презентации появляется одинокий процент.
Разберём на модельном примере, который легко пересчитать. Компания получает 1 000 обращений в месяц, из них 120 — жалобы, которые обязан увидеть руководитель. Систему просят помечать такие обращения. Двух подрядчиков сравнивают на одной и той же выборке, и один из них показывает 95% точности, а второй — 57%. Побеждает второй, и с большим отрывом.
Ниже — почему так получается, как одну метрику поднимают за счёт другой, когда F1 вводит в заблуждение, какие три вопроса задать к любой заявленной цифре и что записывать в акт вместо одного процента.
Два числа вместо одного
Доля настоящих случаев среди тех, что система пометила. Если помечено 60 обращений и 57 из них действительно жалобы, точность равна 57 ÷ 60 = 95%. Высокая точность означает, что сотрудник почти не тратит время на ложные тревоги. Про то, сколько жалоб система при этом не заметила, точность не говорит ничего.
Доля найденных случаев от всех настоящих. Если жалоб было 120, а система нашла 57, полнота равна 57 ÷ 120 = 48%. Высокая полнота означает, что мимо почти ничего не проходит. Ценой этого обычно становятся ложные срабатывания, о которых полнота тоже молчит.
Есть и третья цифра, которую чаще всего показывают в презентациях, — доля правильных решений по всему потоку. Она выглядит внушительнее остальных и обманывает сильнее всех. Рабочая система из нашего примера принимает верное решение по 906 обращениям из 1 000, то есть даёт 91%. А система, которая просто всегда отвечает «это не жалоба», не делая вообще ничего, — 880 из 1 000, то есть 88%. Разница в три пункта, полезность несопоставима. Поэтому одинокий процент без указания, что именно им измерено, — это не результат, а оформление.
Квадратная матрица 2×2 с подписями осей. По горизонтали — «на самом деле жалоба / не жалоба», по вертикали — «система пометила / не пометила». В клетках числа для широкого варианта: помечено и жалоба — 108, помечено и не жалоба — 82, не помечено и жалоба — 12, не помечено и не жалоба — 798. Справа от матрицы две выноски: «точность = 108 ÷ 190 = 57%» и «полнота = 108 ÷ 120 = 90%». Снизу подпись «всего 1 000 обращений, из них 120 жалоб». Чертёжный стиль, подписи по-русски.
Как одну метрику поднимают за счёт другой
Чтобы получить красивую точность, достаточно настроить систему помечать только очевидное. Она станет осторожной, почти не будет ошибаться в том, что пометила, — и пропустит всё, что сформулировано непривычно. Обратный ход даёт красивую полноту: система метит всё подозрительное, не пропускает почти ничего и заваливает руководителя ложными тревогами. Оба варианта честно показывают свой процент.
| Показатель на потоке 1 000 обращений | Вариант А: осторожный | Вариант Б: широкий |
|---|---|---|
| Помечено обращений | 60 | 190 |
| Из них действительно жалобы | 57 | 108 |
| Ложные срабатывания | 3 | 82 |
| Пропущено жалоб из 120 | 63 | 12 |
| Точность | 95% | 57% |
| Полнота | 48% | 90% |
| F1 | 0,64 | 0,70 |
F1 придуман как раз для таких случаев: это способ свести две метрики в одну по формуле 2 × точность × полнота ÷ (точность + полнота). Для варианта А получается 0,64, для Б — 0,70, и по F1 побеждает Б. Но полагаться на него в договоре нельзя по простой причине: F1 считает обе ошибки одинаково дорогими. В жизни они почти никогда не равны, и как только цены расходятся, F1 начинает уверенно указывать на неправильный вариант.
Есть ещё одна деталь, о которой обычно не говорят: варианты А и Б могут быть одной и той же системой с разной настройкой порога. Модель выдаёт не «да» или «нет», а степень уверенности, и вы сами решаете, с какого уровня считать обращение помеченным. Поднять порог — станет как в варианте А, опустить — как в варианте Б. Это настройка на пятнадцать минут, а не разные подрядчики и не разные технологии. Отсюда практический вывод: просьба «сделайте, пожалуйста, точность повыше» выполняется бесплатно и в тот же день, и ровно в тот же день падает полнота. Обсуждать надо не отдельную метрику, а обе сразу и цену каждой ошибки.
Две группы парных горизонтальных полос. Группа «Вариант А: осторожный» — точность 95%, полнота 48%, подпись «пропущено 63 жалобы из 120». Группа «Вариант Б: широкий» — точность 57%, полнота 90%, подпись «82 ложные тревоги». Под каждой группой строка с F1: 0,64 и 0,70. Стрелка между группами с надписью «одна метрика растёт за счёт другой». Ось значений — проценты от 0 до 100.
Решает цена ошибки, а не метрика
Единственный способ выбрать между вариантами — назначить цену каждой из двух ошибок и сравнить месячный убыток. В первом сценарии пропущенная жалоба обходится в 4 000 ₽: часть таких случаев перерастает в возврат, публичный отзыв или потерю клиента. Ложная тревога стоит 15 минут руководителя по ставке 2 500 ₽/час, то есть 625 ₽.
Теперь поменяем одну вводную. Пусть пометка означает не «показать руководителю», а автоматическую остановку отгрузки до разбирательства: ложная тревога стоит уже 5 000 ₽ простоя и звонков. Цифры метрик не изменились ни на пункт, изменилась только цена ошибки — и ответ переворачивается.
| Сценарий 2: ложная тревога стоит 5 000 ₽ | Вариант А | Вариант Б |
|---|---|---|
| Убыток от пропусков | 63 × 4 000 ₽ = 252 000 ₽ | 12 × 4 000 ₽ = 48 000 ₽ |
| Убыток от ложных тревог | 3 × 5 000 ₽ = 15 000 ₽ | 82 × 5 000 ₽ = 410 000 ₽ |
| Итого в месяц | 267 000 ₽ | 458 000 ₽ |
| Кто выигрывает | Осторожный вариант, на 191 000 ₽ | — |
Точку перелома между двумя вариантами можно посчитать один раз и потом просто сверяться с ней. Осторожный вариант пропускает на 51 жалобу больше (63 против 12), зато даёт на 79 ложных тревог меньше (3 против 82). Значит, варианты равны, когда 51 пропуск стоит столько же, сколько 79 ложных тревог: цена тревоги примерно 65% от цены пропуска, то есть около 2 580 ₽ при пропуске в 4 000 ₽. Дешевле этого — берите широкий вариант, дороже — осторожный. Вся арифметика умещается в две строки и решает вопрос, на который иначе уходят недели переписки с подрядчиком.
Правильный порядок разговора с подрядчиком такой: сначала вы называете, во что вам обходится пропуск и во что — ложное срабатывание, и только потом обсуждается, какую метрику поднимать. Подрядчик, который начинает с обещания процента, ещё не спросив про цену ошибки, продаёт вам цифру, а не результат.
Три вопроса к любой заявленной цифре
Проверка занимает пятнадцать минут и не требует технических знаний. Если хотя бы на один вопрос нет внятного ответа, процент к вашей задаче отношения не имеет — даже если он получен честно.
- 1На какой выборке получена цифра? Сколько примеров, за какой период, кто их отбирал и это ваши данные или чужие. Результат, полученный на демонстрационном наборе подрядчика, не переносится на ваш поток: у вас другие формулировки клиентов, другие документы и другие редкие случаи.
- 2Кто размечал эталон? Если правильные ответы писал тот же, кто настраивал систему, вы смотрите на самооценку. Эталон должен готовить предметный специалист заказчика — как это устроено, мы описали в разборе разметки данных.
- 3Считались ли критические ошибки отдельно? Одно обещание несуществующей скидки и двадцать неточных формулировок в общем проценте весят одинаково, хотя стоят компании совершенно разного. Если критические случаи не выделены в отдельную строку, цифра прячет самое дорогое.
Если ответы на все три вопроса устроили, остаётся четвёртая проверка, и она решающая: попросите повторить тот же замер на выборке, которую соберёте вы сами. Не подсказывая, какие примеры туда войдут. Добросовестный подрядчик согласится сразу — для него это два часа работы, потому что процедура уже отлажена. Отказ или встречное предложение «давайте лучше посмотрим наши результаты» само по себе информативнее любого процента и обходится вам в один вопрос.
На потоке 6 000 обращений в месяц 99,9% означает ровно 6 неверных ответов. Попросите показать их поштучно: диалог, вопрос, ответ системы, чем он плох. У подрядчика, который действительно измерял, такой список есть — это побочный продукт замера. У подрядчика, взявшего цифру из описания модели на публичном наборе задач, списка не будет, и разговор на этом закончится. Второй вариант встречается заметно чаще.
Что писать в акт вместо одного процента
В акте приёмки одна цифра качества бесполезна: в споре она ничего не доказывает, потому что не сказано, как получена. Рабочая замена — короткий блок из четырёх долей и описания выборки, который занимает половину страницы и проверяется кем угодно. Методика замера, по которой эти доли получены, описана отдельно в материале об измерении качества на своих данных.
- Описание выборки: сколько примеров, за какой период собраны, кто отбирал, сколько из них специально подобранных на трудные темы.
- Кто писал эталонные ответы, когда и какое совпадение показала контрольная разметка вторым специалистом.
- Четыре доли: правильные ответы, честные отказы, ошибки без последствий, критические ошибки — с указанием погрешности, которая следует из размера выборки.
- Критические случаи поштучно: номер примера, вопрос, ответ системы, из какого пункта согласованного списка он критический.
- Дата замера и срок, в который стороны повторяют его при разногласиях.
Нарисованный фрагмент листа акта приёмки с пятью подписанными блоками сверху вниз: «Выборка: 200 случайных + 50 трудных, период, кто отбирал», «Эталон: кто размечал, совпадение контрольной разметки», «Четыре доли с погрешностью», «Критические случаи поштучно», «Дата замера и порядок повтора при разногласиях». Слева от блока с долями зачёркнутая строка-образец «точность не менее 99%» с пометкой «непроверяемо». Чертёжный стиль, всё по-русски.
Отдельно стоит договориться, что происходит при недоборе: разбор причины за счёт подрядчика, доработка в согласованный срок, повторный замер на новой выборке. Это часть общей логики приёмки — не «нравится или нет», а заранее описанная проверка с известным результатом, как в разборе приёмки работ по автоматизации.
Когда точность и полнота не нужны
Эта пара метрик придумана для задач, где система что-то помечает или относит к категории. За их пределами она либо не считается, либо считается и вводит в заблуждение.
- Система отвечает свободным текстом. У ответа по базе знаний нет «помечено или нет», поэтому вместо точности и полноты считаются четыре доли: правильные ответы, отказы, ошибки без последствий и критические ошибки. Пытаться натянуть сюда полноту — верный способ получить цифру, которую никто не сможет объяснить.
- Искомый случай встречается реже пяти раз в месяц. Пять событий не дают статистики: одна ошибка меняет полноту на 20 п.п. Такие случаи ловят не метрикой, а сплошным просмотром и жёстким ограничителем в коде — механику мы разбирали в статье про три контура защиты.
- Решение всё равно принимает человек по всему потоку. Если руководитель и так читает все обращения, система лишь меняет порядок чтения, и мерить надо сэкономленное время, а не полноту.
- Цена двух ошибок неизвестна. Пока не названо, во что обходятся пропуск и ложная тревога, оптимизировать нечего: любая настройка порога будет спором о вкусах, оформленным в проценты.
Процент без описания выборки и без цены ошибки — не измерение, а формулировка, подобранная под ответ.
