Метрики качества
Точность, полнота и доля правильных ответов, компромисс порогов precision/recall, AUC-ROC и его ранговые свойства, метрики регрессии при выбросах.
17 вопросов
JuniorТеорияОчень частоЧто такое AUC-ROC?
Что такое AUC-ROC?
AUC-ROC — площадь под ROC-кривой (доля верных положительных против ложных положительных по порогам). Равна вероятности, что случайный положительный выше случайного отрицательного, то есть доле верно упорядоченных пар. От порога не зависит.
Типичные ошибки
- ✗Путают AUC-ROC с accuracy при фиксированном пороге
- ✗Не знают интерпретацию через попарное ранжирование
- ✗Думают, что AUC зависит от выбранного порога классификации
Уточняющие вопросы
- →Почему AUC не меняется при дублировании каждого положительного объекта?
- →Может ли высокий AUC дать ноль положительных в топ-K предсказаний?
JuniorТеорияОчень частоКак прочитать TPR, FPR и специфичность по матрице ошибок и когда именно специфичность вы защищаете?
Как прочитать TPR, FPR и специфичность по матрице ошибок и когда именно специфичность вы защищаете?
TPR, он же recall, равен TP/(TP+FN) — доля пойманных положительных. Специфичность равна TN/(TN+FP) — доля верно отсеянных отрицательных, а FPR это единица минус специфичность. Защищайте специфичность в массовом скрининге, где лишние срабатывания забивают проверку.
Типичные ошибки
- ✗Путают специфичность с precision — у них разные знаменатели
- ✗Считают FPR по положительной строке вместо отрицательной
- ✗В задаче скрининга сообщают только recall, хотя бюджет съедают ложные тревоги
Уточняющие вопросы
- →Из какой строки матрицы ошибок берётся каждая из трёх величин?
- →Как доля классов влияет на специфичность по сравнению с precision?
JuniorТеорияОчень частоДай определения точности (precision), полноты (recall) и доли правильных ответов с формулами.
Дай определения точности (precision), полноты (recall) и доли правильных ответов с формулами.
Precision = TP/(TP+FP) — доля истинно положительных среди предсказанных положительными. Recall = TP/(TP+FN) — доля найденных среди реально положительных. Accuracy = (TP+TN)/всего — доля верных среди предсказаний. Accuracy обманчива при дисбалансе.
Типичные ошибки
- ✗Меняют местами знаменатели precision и recall (FP против FN)
- ✗Сообщают accuracy на несбалансированной выборке и называют модель хорошей
- ✗Смешивают «точность» (здесь precision) с accuracy (долей правильных)
Уточняющие вопросы
- →Когда accuracy даёт обманчиво высокое значение?
- →Какая метрика важнее, когда ложные срабатывания очень дороги?
JuniorТеорияЧастоЧто такое ошибки первого и второго рода в ML и в какой задаче каждая дорога?
Что такое ошибки первого и второго рода в ML и в какой задаче каждая дорога?
Ошибка первого рода — ложноположительный ответ, пометка отрицательного объекта; ошибка второго рода — ложноотрицательный, пропуск настоящего положительного. Precision защищает от первой, recall от второй. В спам-фильтре дорога первая, в скрининге рака — вторая.
Типичные ошибки
- ✗Меняют их местами: называют пропущенный положительный ошибкой первого рода
- ✗Считают обе ошибки равноценными и по умолчанию берут accuracy
- ✗Забывают, что порог решения обменивает один тип ошибки на другой
Уточняющие вопросы
- →В какой клетке матрицы ошибок лежит каждый тип ошибки?
- →Как сдвиг порога решения меняет баланс между ними?
JuniorТеорияЧастоЧто такое F1 и когда честнее выбрать F0.5 или F2?
Что такое F1 и когда честнее выбрать F0.5 или F2?
F1 — гармоническое среднее precision и recall, поэтому остаётся низким, пока обе не станут приличными. F-beta обобщает его: beta задаёт вес recall относительно precision. Берите F2, когда дороже пропуск, и F0.5, когда дороже ложная тревога.
Типичные ошибки
- ✗Называют F1 арифметическим средним, и высокий precision прячет почти нулевой recall
- ✗Путают направление beta — считают, что beta больше 1 усиливает precision
- ✗По умолчанию сообщают F1, когда цены двух ошибок в задаче явно разные
Уточняющие вопросы
- →Почему гармоническое среднее наказывает несбалансированную пару precision/recall?
- →Что F-beta игнорирует из того, что учла бы полная матрица стоимостей?
JuniorТеорияЧастоЧто штрафуют RMSE, MAE и MAPE и когда MAPE ломается?
Что штрафуют RMSE, MAE и MAPE и когда MAPE ломается?
MAE усредняет абсолютные ошибки и считает все промахи равными. RMSE возводит их в квадрат до усреднения, поэтому доминируют крупные ошибки — берите её, когда большой промах дороже. MAPE делит на факт, поэтому не определена в нуле, взрывается рядом и асимметрична.
Типичные ошибки
- ✗Считают, что RMSE и MAE всегда ранжируют модели одинаково
- ✗Применяют MAPE к рядам с нулями или почти нулевыми значениями
- ✗Упускают асимметрию MAPE — она слабо штрафует завышение прогноза
Уточняющие вопросы
- →Почему RMSE никогда не меньше MAE на одних и тех же ошибках?
- →Чем бы вы заменили MAPE на прерывистом спросе?
MiddleТеорияЧастоЧто такое диаграмма надёжности и чем различаются методы калибровки Platt scaling и изотоническая регрессия?
Что такое диаграмма надёжности и чем различаются методы калибровки Platt scaling и изотоническая регрессия?
Диаграмма надёжности рисует долю положительных в каждой корзине баллов против среднего предсказания; калиброванная модель лежит на диагонали. Platt scaling подгоняет сигмоиду — параметрично и надёжно на малых данных. Изотоническая регрессия гибче, но переобучается.
Типичные ошибки
- ✗Путают диаграмму надёжности с PR- или ROC-кривой
- ✗Меняют методы местами — параметрическая сигмоида это Platt, а не изотоническая
- ✗Применяют изотоническую регрессию на паре сотен точек и переобучаются
Уточняющие вопросы
- →Как число корзин меняет то, что показывает диаграмма надёжности?
- →Почему калибровку надо подгонять на данных, которых классификатор не видел?
MiddleТеорияЧастоЧто улавливают log-loss и Brier score, чего не видит accuracy, и почему log-loss строже?
Что улавливают log-loss и Brier score, чего не видит accuracy, и почему log-loss строже?
Обе оценивают саму предсказанную вероятность, а не метку после порога, поэтому вскрывают уверенность и плохую калибровку, невидимые для accuracy. Brier — среднеквадратичная ошибка вероятностей, ограниченная и мягкая. Log-loss берёт логарифм, поэтому уверенная ошибка взрывается.
Типичные ошибки
- ✗Считают их вариантами accuracy, всё так же применяющими порог к вероятности
- ✗Путают ограниченность — думают, что log-loss насыщается, а Brier взрывается
- ✗Полагают, что монотонное перешкалирование баллов не меняет ни одну из метрик
Уточняющие вопросы
- →Что сделает с log-loss вероятность ровно ноль на положительном объекте?
- →Какую из двух вы бы оптимизировали, если вероятность потребляет код ниже по потоку?
MiddleТеорияЧастоПри доле положительных 1:1000 что показывает precision-recall метрика PR-AUC и что скрывает ROC-AUC?
При доле положительных 1:1000 что показывает precision-recall метрика PR-AUC и что скрывает ROC-AUC?
ROC-AUC построена на FPR, в знаменателе которой огромный отрицательный класс, поэтому тысячи ложных срабатываний почти не двигают её. PR-AUC опирается на precision, где знаменатель — помеченные объекты, поэтому она падает, когда большинство срабатываний ошибочны.
Типичные ошибки
- ✗Выкатывают по высокой ROC-AUC, не проверив precision в рабочей точке
- ✗Считают, что обе кривые одинаково реагируют на долю классов
- ✗Верят, что ресемплинг снова делает ROC-AUC информативной при сильном дисбалансе
Уточняющие вопросы
- →Чему равна базовая линия PR-кривой при доле положительных 1:1000?
- →Какой знаменатель делает precision чувствительной к доле классов, а FPR — нет?
MiddleДизайнЧастоМодель модерации находит запрещённые контакты в тексте объявлений. Вы задаёте два порога — один для автоотклонения объявления, другой для отправки на ручную модерацию с фиксированной пропускной способностью. Для каждого порога важнее precision или recall и почему? Распишите компромисс и что ограничивает порог ручной проверки.
Модель модерации находит запрещённые контакты в тексте объявлений. Вы задаёте два порога — один для автоотклонения объявления, другой для отправки на ручную модерацию с фиксированной пропускной способностью. Для каждого порога важнее precision или recall и почему? Распишите компромисс и что ограничивает порог ручной проверки.
Автоотклонение → приоритет precision: ошибочный автоотказ бьёт по пользователю и грузит поддержку, ложные срабатывания редки. Ручная проверка → приоритет recall в пределах пропускной способности модераторов.
Типичные ошибки
- ✗Оптимизируют recall для порога автодействия, вызывая ошибочные автоотклонения
- ✗Игнорируют потолок пропускной способности людей, ограничивающий ручной порог
- ✗Считают оба порога одинаковыми вместо учёта их разной цены ошибки
Уточняющие вопросы
- →Что сломается, если recall ручной проверки задрать выше возможностей людей?
- →Как перенастроить пороги, если штат модераторов удвоится?
JuniorТеорияИногдаЧто такое R-квадрат, может ли он быть отрицательным и о чём говорит такое значение?
Что такое R-квадрат, может ли он быть отрицательным и о чём говорит такое значение?
R-квадрат — доля дисперсии цели, объяснённая моделью: единица минус отношение суммы квадратов остатков к полной сумме квадратов относительно среднего. Да, на отложенных данных он уходит в минус, когда модель предсказывает хуже среднего по обучению.
Типичные ошибки
- ✗Утверждают, что R-квадрат на любых данных снизу ограничен нулём
- ✗Читают его как квадрат корреляции, а не как сравнение с базой из среднего
- ✗Забывают, что база — среднее по обучению, поэтому на сдвинутом тесте возможен проигрыш
Уточняющие вопросы
- →Какой базовой модели ровно соответствует R-квадрат, равный нулю?
- →Как скорректированный R-квадрат меняет картину при добавлении признаков?
MiddleТеорияИногдаУ двух моделей одинаковая ROC-AUC, но очень разные PR-кривые — как так и какую вы выкатите?
У двух моделей одинаковая ROC-AUC, но очень разные PR-кривые — как так и какую вы выкатите?
ROC-AUC сворачивает всё ранжирование в одну площадь, и разные порядки дают одно значение. Одна модель держит ошибки в самой верхушке, другая размазывает их ниже, поэтому precision при малом recall различается резко. Выкатывайте лучшую в вашей рабочей точке.
Типичные ошибки
- ✗Считают ROC-AUC исчерпывающим описанием ранжирования
- ✗Выбирают модель по глобальной площади, а не по рабочей точке
- ✗Объясняют расхождение калибровкой, а не разницей в ранжировании
Уточняющие вопросы
- →В каком месте ранжирования ошибки сильнее всего бьют по precision и почему?
- →Какое одно число вы бы сообщили вместо площади под всей кривой?
MiddleТеорияИногдаВ многоклассовой задаче какое усреднение F1 — macro, micro или weighted — прячет полностью провальный редкий класс?
В многоклассовой задаче какое усреднение F1 — macro, micro или weighted — прячет полностью провальный редкий класс?
Micro F1 сваливает все объекты в один счёт, поэтому частые классы доминируют и мёртвый редкий класс не виден. Weighted F1 прячет его так же, взвешивая по размеру класса. Macro F1 усредняет поклассовые оценки с равным весом, поэтому провал редкого класса заметен.
Типичные ошибки
- ✗Сообщают weighted F1 на несбалансированной задаче и называют это честным
- ✗Считают, что macro-усреднение размывает, а не вскрывает провал редкого класса
- ✗Полагают, что micro F1 отличается от общей accuracy при одной метке на объект
Уточняющие вопросы
- →Во что превращается micro F1, когда у каждого объекта ровно одна метка?
- →Какое усреднение вы возьмёте, если редкий класс ещё и самый дорогой?
MiddleТеорияИногдаПри выбросах в задаче регрессии вы бы оптимизировали MAE или MSE и в чём компромисс?
При выбросах в задаче регрессии вы бы оптимизировали MAE или MSE и в чём компромисс?
Лучше MAE. MSE возводит ошибку в квадрат, поэтому несколько крупных выбросов доминируют в потерях и тянут подгонку к себе; MAE штрафует линейно и устойчивее. Huber loss — компромисс: квадратична у нуля, линейна вдали. MAE недифференцируема в нуле, обучение медленнее.
Типичные ошибки
- ✗Выбирают MSE при выбросах, потому что она «уделяет больше внимания» крупным ошибкам
- ✗Не упоминают Huber loss как устойчивый компромисс
- ✗Забывают про недифференцируемость MAE в нуле как её главную цену
Уточняющие вопросы
- →Как Huber loss интерполирует между MAE и MSE?
- →Что недифференцируемость MAE в нуле значит для оптимизатора?
SeniorТеорияИногдаЗамерили AUC-ROC = 0.92. Как она изменится, если все положительные дублировать 7×, а все отрицательные 4×?
Замерили AUC-ROC = 0.92. Как она изменится, если все положительные дублировать 7×, а все отрицательные 4×?
Останется 0.92. AUC — доля верно упорядоченных пар «положительный/отрицательный». Дублирование ×7 и ×4 умножает и это число, и общее число пар на 7·4, отношение не меняется. AUC — ранговая метрика, инвариантная к пересэмплированию.
Типичные ошибки
- ✗Считают, что больше копий положительных обязательно поднимет AUC
- ✗Забывают, что числитель и знаменатель масштабируются одинаково
- ✗Не видят, что AUC ранговая и инвариантна к пересэмплированию
Уточняющие вопросы
- →Какие другие метрики изменились бы при том же дублировании?
- →Сохраняется ли эта инвариантность для PR-AUC и почему?
SeniorТеорияИногдаКлассификатор скорит объявления, AUC > 0.99. В топ-1000 по скору — могут ли все быть отрицательными?
Классификатор скорит объявления, AUC > 0.99. В топ-1000 по скору — могут ли все быть отрицательными?
Да. AUC измеряет глобальное ранжирование, а не топ-K. При дисбалансе порядок [990 тыс. отрицательных, 1 тыс. положительных, 9 тыс. отрицательных] даёт AUC > 0.99, но топ-1000 — сплошь отрицательные. AUC не говорит о precision@K.
Типичные ошибки
- ✗Приравнивают высокий AUC к высокому precision@K
- ✗Игнорируют, как сильный дисбаланс отрывает глобальное ранжирование от верхнего среза
- ✗Считают, что AUC около 1.0 гарантирует чистый топ-K
Уточняющие вопросы
- →Какую метрику стоит докладывать, чтобы контролировать топ-K?
- →Как построить конкретное ранжирование, демонстрирующее этот провал?
SeniorДизайнИногдаРуководство просит ОДНО число для оценки антифрод-модели. Пропущенный фрод стоит в среднем 200 долларов; ложное срабатывание — 4 доллара ручной проверки плюс раздражение клиента. Команда проверки разбирает не больше 3000 сигналов в день при 2 миллионах транзакций, а модель выдаёт балл, а не метку. Постройте единую решающую метрику, которую вы будете сообщать. Объясните, как в неё входят матрица стоимостей, фиксированная мощность проверки и форма распределения баллов, почему обычные F1 или ROC-AUC не отвечают на вопрос и что вы всё равно будете отслеживать рядом с этим числом, чтобы оно тихо не протухло.
Руководство просит ОДНО число для оценки антифрод-модели. Пропущенный фрод стоит в среднем 200 долларов; ложное срабатывание — 4 доллара ручной проверки плюс раздражение клиента. Команда проверки разбирает не больше 3000 сигналов в день при 2 миллионах транзакций, а модель выдаёт балл, а не метку. Постройте единую решающую метрику, которую вы будете сообщать. Объясните, как в неё входят матрица стоимостей, фиксированная мощность проверки и форма распределения баллов, почему обычные F1 или ROC-AUC не отвечают на вопрос и что вы всё равно будете отслеживать рядом с этим числом, чтобы оно тихо не протухло.
Сообщайте ожидаемую дневную чистую экономию при пороге, чей поток сигналов заполняет 3000 слотов: 200 за пойманный фрод минус 4 за ложное срабатывание. Стоимости задают веса, мощность фиксирует порог. Рядом следите за recall при этом бюджете.
Типичные ошибки
- ✗Сообщают метрику без порога, хотя рабочая точка задана мощностью проверки
- ✗Забывают, что достижимый порог фиксирует мощность проверки, а не модель
- ✗Сводят всё к одному числу, не отслеживая рядом recall и дрейф
Уточняющие вопросы
- →Что станет с этим числом, если мощность проверки в следующем квартале удвоится?
- →Как вложить в ту же величину раздражение клиента, у которого нет счёта-фактуры?