Перейти к содержанию
Данные и AI

11 вопросов по теме «Метрики и дисбаланс классов» на собеседовании

В этом материале — 11 вопросов из русской колоды RecallDeck по теме «Метрики и дисбаланс классов». Сначала сформулируйте короткий ответ сами, затем откройте подробный разбор и проверьте примеры, ограничения и отказные случаи.

10 мин чтения11 подробных ответовПроверено 24 августа 2026
Главная мысль

Сначала зафиксируйте grain данных, допущения, метрику и риск leakage, затем обсуждайте модель, инструмент или инфраструктуру.

Вопросы и ответы

11 подробных ответов

01

Дайте определение precision и recall через матрицу ошибок. Когда какая метрика важнее?

Короткий ответ: Precision (точность) = TP/(TP+FP) — доля настоящих позитивов среди всех, кого модель назвала позитивными. Recall (полнота) = TP/(TP+FN) — доля найденных среди всех реальных позитивов. Recall критичен там, где дорог пропуск (скрининг рака, fraud); precision — там, где дорога ложная тревога (спам-фильтр, блокировка контента).

Подробно:

Факт: 1 Факт: 0
Прогноз: 1 TP FP
Прогноз: 0 FN TN
  1. Precision — читаем строку «прогноз: 1»: сколько из срабатываний модели настоящие. Метрика цены ложной тревоги.
  2. Recall — читаем столбец «факт: 1»: какую долю реальных позитивов мы поймали. Метрика цены пропуска.
  3. Trade-off через порог — понизили порог → ловим больше позитивов (recall растёт), но растут и ложные срабатывания (precision падает). Одна модель — целая кривая пар (P, R), а не одна точка.

⚠️ Частая ошибка: назвать формулы и остановиться. Сильный ответ начинается с вопроса «что дороже — пропустить или ложно сработать», и только из него следует, какая метрика главная.

02

Что на самом деле означает ROC-AUC = 0.8?

Короткий ответ: ROC-AUC — это вероятность того, что случайно взятый позитивный объект получит скор выше, чем случайно взятый негативный. Метрика качества ранжирования, не зависящая от порога: 0.5 — случайное упорядочивание, 1.0 — идеальное.

Подробно:

  1. Вероятностная интерпретация — AUC = P(score(x⁺) > score(x⁻)) для случайной пары «позитив–негатив». AUC 0.8 = в 80% таких пар позитив стоит выше.
  2. Инвариантность к монотонным преобразованиям — умножьте все скоры на 2, возведите в куб, прогоните через сигмоиду — AUC не изменится: важен только порядок. Любимый follow-up интервьюеров.
  3. Ничего о калибровке — AUC не гарантирует, что скор 0.8 означает «вероятность 80%»: модель может идеально ранжировать и при этом безбожно врать в вероятностях.
скоры по убыванию:  0.9  0.7  0.6  0.4  0.2
классы:              +    +    −    +    −
пар (+,−) всего 6, верно упорядочено 5
→ AUC = 5/6 ≈ 0.83

⚠️ Частая ошибка: ответить «площадь под ROC-кривой» и остановиться. Интервьюер ждёт вероятностную интерпретацию и понимание инвариантности к порогу и монотонным преобразованиям скоров.

03

Модель показывает accuracy 99%. Это хорошая модель?

Короткий ответ: Неизвестно — сначала нужно спросить про баланс классов. При 99% негативов константный прогноз «все негативные» даёт те же 99% accuracy при нулевом recall. Это accuracy paradox — классический скрининговый вопрос.

Подробно:

1000 объектов: 990 негативных, 10 позитивных
модель «всегда 0»: accuracy = 990/1000 = 99%
                   recall   = 0/10     = 0   ← бесполезна
  1. Сравнение с baseline — accuracy имеет смысл только относительно доли мажоритарного класса: 99% при 99% негативов — ноль информации о модели.
  2. Метрики по классам — precision и recall (полнота) по минорному классу, матрица ошибок, PR-AUC: они мгновенно вскрывают вырожденную модель.
  3. Правильный ход на собеседовании — встречный вопрос: «какой баланс классов и какова цена FP и FN?» Само наличие этого вопроса — уже половина ответа.

⚠️ Частая ошибка: ответить «да, 99% — отлично». Это вопрос-фильтр: секунда колебания перед «а какой баланс классов?» — и интервьюер уже сделал вывод.

04

ROC-AUC или PR-AUC при сильном дисбалансе классов — что выбрать и почему?

Короткий ответ: PR-AUC. FPR в ROC-кривой делится на число всех негативов, которых при дисбалансе огромное количество, поэтому даже сотни ложных срабатываний почти не двигают кривую. Precision делится на число срабатываний модели и честно показывает коллапс. И baseline у PR-AUC — это prevalence (доля позитивов), а не 0.5.

Подробно:

Fraud: 100 000 транзакций, 100 позитивов (0.1%). Модель: TP = 80, FN = 20, FP = 900.

Метрика Формула Значение Впечатление
FPR (ось ROC) 900 / 99 900 0.9% «почти идеал»
Recall 80 / 100 80% хорошо
Precision (ось PR) 80 / 980 8.2% 11 из 12 алертов ложные
  1. Знаменатель решает — негативов так много, что ROC «прощает» любые разумные объёмы FP; precision смотрит только на то, что модель пометила, и разоблачает её.
  2. Baseline — у ROC-AUC случайный уровень всегда 0.5; у PR-AUC — prevalence (здесь 0.001), поэтому PR-AUC 0.4 на таких данных может быть блестящим результатом.
  3. Когда ROC-AUC уместен — сбалансированные классы, сравнение ранжирования на всей выборке, стабильность к смене prevalence между выборками.

⚠️ Частая ошибка: гордиться ROC-AUC 0.98 на антифрод-данных. Это фирменный вопрос fraud- и скоринговых команд: они тут же спросят precision при рабочем recall.

05

Что такое F1-мера, почему именно гармоническое среднее и когда F1 — плохой выбор?

Короткий ответ: F1 = 2PR/(P+R) — гармоническое среднее precision и recall. Гармоническое, потому что оно жёстко наказывает перекос: высокая одна метрика не компенсирует провальную другую. F1 — плохой выбор, когда цены FP и FN разные (нужна Fβ) или когда бизнесу нужны калиброванные вероятности и прямой учёт стоимости ошибок.

Подробно:

  1. Почему не арифметическое среднее — при P = 0.9 и R = 0.1 арифметическое среднее 0.5 выглядит терпимо, а F1 = 2·0.9·0.1/1.0 = 0.18 честно кричит о провале: одна компонента не прячет другую.
  2. — если recall важнее в β раз: F2 для скрининга (пропуск дорог), F0.5 для модерации (ложная тревога дорога).
  3. Когда F1 не годится — асимметричные издержки (лучше минимизировать ожидаемую стоимость напрямую), нужны вероятности (log-loss, Brier score), сравнение моделей без фиксации порога (PR-AUC).
P R Арифм. среднее F1
0.9 0.1 0.50 0.18
0.5 0.5 0.50 0.50

⚠️ Частая ошибка: ставить F1 «по умолчанию», не спросив о ценах ошибок. F1 неявно предполагает, что precision и recall равноценны — в реальных задачах это почти никогда не так.

06

Как выбрать порог классификации и чем плох дефолтный 0.5?

Короткий ответ: Порог выбирают из бизнес-цен ошибок: минимизацией ожидаемой стоимости FP и FN, максимизацией Fβ или целевой точкой на ROC/PR-кривой. 0.5 — артефакт, а не закон: просто граница argmax по вероятности; при дисбалансе классов и асимметричных ценах он почти всегда неоптимален.

Подробно:

  1. Через стоимость — предсказывать «1», если p·C_FN > (1−p)·C_FP, откуда порог = C_FP / (C_FP + C_FN).
  2. Мини-пример — пропуск фрода стоит 10 000 ₽, ложная блокировка — 500 ₽: порог = 500 / 10 500 ≈ 0.048. Блокируем уже при 5% уверенности, и это рационально.
  3. Через метрику — перебрать пороги на валидации: максимум Fβ, либо зафиксировать recall ≥ 0.9 и выжать максимум precision.
  4. Операционные ограничения — «аналитики разбирают 200 алертов в день»: порог задаётся как top-k по скору, а не по вероятности вовсе.
порог ↓  →  recall ↑, precision ↓
порог ↑  →  precision ↑, recall ↓
0.5 — дефолт библиотеки, а не решение задачи

⚠️ Частая ошибка: ни разу не усомниться в 0.5. Вопрос «а почему у вас порог 0.5?» — стандартная проверка, думает ли кандидат о задаче или о predict() из sklearn.

07

Какие есть способы борьбы с дисбалансом классов и как их сравнить?

Короткий ответ: Веса классов / cost-sensitive loss (первый выбор — данные не искажаются), undersampling, oversampling/SMOTE, сдвиг порога — и честный вопрос «а проблема ли это данных, или просто нужна другая метрика». Железное правило: ресемплировать только train-фолд внутри CV, иначе лик.

Подробно:

Приём Суть Цена
Class weights / cost-sensitive loss ошибка на минорном классе штрафуется сильнее почти бесплатно — начинать отсюда
Undersampling выбрасываем часть мажоритарного класса теряем данные
Oversampling / SMOTE дублируем минорный / интерполируем между k-NN-соседями синтетические точки, риск подгонки под шум
Сдвиг порога модель не трогаем, двигаем порог решения нужен хоть какой-то сигнал в скорах
«Это не проблема данных» сменить метрику: PR-AUC, recall@precision часто это и есть решение
  1. SMOTE — синтетические точки на отрезках между минорными соседями; на табличных данных с категориальными фичами и выбросами часто вредит.
  2. Главное правило — ресемплинг строго внутри train-фолда каждой итерации CV: oversampling до сплита раскладывает копии/интерполяции одного объекта в train и test → лик и фантастические метрики.
  3. Побочный эффект — ресемплинг меняет prevalence в train и ломает калибровку вероятностей: после него скоры придётся калибровать заново.

⚠️ Частая ошибка: SMOTE до train/test-сплита. Модель «узнаёт» тест по синтетическим близнецам — оценка завышена, в проде всё разваливается.

08

Что такое калибровка вероятностей, как её проверить и как починить?

Короткий ответ: Модель калибрована, если среди объектов с предсказанием p ≈ 0.8 позитивных действительно около 80%. Проверяют reliability diagram и Brier score, чинят Platt scaling или isotonic regression. Критично везде, где скор конвертируется в деньги: кредитный скоринг, pricing, ожидаемые потери.

Подробно:

  1. Диагностика — бьём предсказания на бины и в каждом сравниваем средний p с эмпирической долей позитивов:
бин p        реально позитивных
0.0–0.2      9%
0.4–0.6      44%
0.8–1.0      71%   ← модель переуверена: 0.9 ≠ 0.9
  1. Кто врёт из коробки — бустинг, SVM и современные нейросети систематически некалиброваны (чаще переуверены); логистическая регрессия обычно почти калибрована.
  2. Лечение — Platt scaling (сигмоида поверх скоров: мало данных, S-образное искажение) или isotonic regression (много данных, любая монотонная кривая). Калибровать на отдельном фолде, не на train.
  3. Связь с дисбалансом — under/oversampling меняет prevalence в train → вероятности систематически смещены; после ресемплинга калибровка обязательна.

⚠️ Частая ошибка: «AUC высокий — значит, вероятностям можно верить». AUC про порядок, калибровка про значения; понимание разницы — маркер сеньорности в скоринговых командах.

09

Как связаны коэффициент Gini и ROC-AUC?

Короткий ответ: Линейно: Gini = 2·AUC − 1. Это одна и та же информация о качестве ранжирования, просто в другом масштабе: случайная модель — AUC 0.5 → Gini 0, идеальная — AUC 1 → Gini 1.

Подробно:

Gini = 2·AUC − 1
AUC 0.50 → Gini 0.0   (случайное ранжирование)
AUC 0.75 → Gini 0.5
AUC 1.00 → Gini 1.0
диапазон: [−1, 1]; в живом кредитном скоринге
хороший Gini ≈ 0.3–0.6 (AUC ≈ 0.65–0.8)
  1. Геометрия — Gini равен отношению площади между ROC-кривой и диагональю к площади идеального треугольника над диагональю; отсюда линейная формула.
  2. Словарь банковского скоринга — Сбер, Т-Банк и любые кредитные команды говорят «Gini», а не «AUC»: мониторинг моделей, валидационные отчёты, алерты деградации — всё в Gini.
  3. Практический смысл — ничего нового относительно AUC: то же ранжирование, те же инвариантности. «Gini упал с 0.45 до 0.38» — стандартная фраза model-мониторинга, и вы обязаны её понимать.

⚠️ Частая ошибка: на собеседовании в банк не знать, что Gini и AUC — одно и то же с точностью до линейного преобразования. Для скоринговой команды это словарный минимум, а не бонусный вопрос.

10

RMSE, MAE и MAPE: что оптимизирует каждая метрика и когда какую выбирать?

Короткий ответ: RMSE минимизируется условным средним и квадратично штрафует большие ошибки — выбросы доминируют. MAE минимизируется медианой — робастна. MAPE не определена при нулевых фактах и асимметрична: перепрогноз штрафуется неограниченно, недопрогноз — максимум на 100%, поэтому оптимизация MAPE занижает прогнозы. При асимметричных бизнес-ценах — quantile loss.

Подробно:

Метрика Оптимум Выбросы Главная ловушка
RMSE среднее доминируют одна аномалия портит всю метрику
MAE медиана робастна не видит редкие крупные промахи
MAPE смещён вниз в процентах нули в факте; премирует занижение
Quantile loss заданный квантиль τ управляемы нужно осознанно выбрать τ
  1. RMSE vs MAE — вопрос «что больнее: средний промах или редкая катастрофа». Спрос с редкими всплесками: RMSE заставит модель «страховаться» от них.
  2. MAPE — деление на факт: при нулевом спросе взрывается; ошибка перепрогноза не ограничена (>100% бывает), недопрогноза — ограничена 100%.
  3. Асимметричные цены — упущенные продажи дороже лишнего стока? Quantile (pinball) loss с τ > 0.5 — стандарт demand forecasting.

⚠️ Частая ошибка: оптимизировать MAPE на спросе с нулями и всплесками: метрика взрывается на нулях и системно премирует заниженные прогнозы.

11

Precision@k, MAP, MRR, NDCG: что измеряет каждая метрика ранжирования?

Короткий ответ: Все четыре оценивают качество топа выдачи, а не классификацию. Precision@k — доля релевантных в топ-k; MRR — насколько высоко стоит первый релевантный; MAP — средняя precision по позициям всех релевантных; NDCG — градуированная релевантность с логарифмическим дисконтом по позиции, нормированная на идеальную выдачу.

Подробно:

  1. Precision@k — пользователь видит только первый экран: считаем релевантные в топ-k, хвост не важен.
  2. MRR — 1/позиция первого релевантного, усреднить по запросам: для сценариев «нужен один правильный ответ» (поиск, автокомплит, QA).
  3. MAP — среднее average precision по запросам: учитывает и полноту, и порядок, но релевантность только бинарная.
  4. NDCG — релевантность градуированная (0–3), вклад позиции i равен rel/log2(i+1), сумма делится на DCG идеальной сортировки.
выдача (rel):    [2, 0, 3, 1]
DCG  = 2/log2(2) + 0/log2(3) + 3/log2(4) + 1/log2(5)
     = 2 + 0 + 1.5 + 0.43 = 3.93
идеал [3, 2, 1, 0]: IDCG = 3 + 1.26 + 0.5 + 0 = 4.76
NDCG = 3.93 / 4.76 ≈ 0.83
  1. Когда ранжирующие, а не классификационные — поиск и рекомендации: релевантность не бинарна, а позиция решает всё. Дежурный вопрос в Яндексе, Авито, Ozon.

⚠️ Частая ошибка: оценивать рекомендательную систему глобальным ROC-AUC по всем парам «пользователь–товар»: он не видит, что пользователю показывают только топ, и позиция внутри него решает.

Источники

Источники и редакционная политика

Материалы RecallDeck сопоставлены с официальной документацией и открытыми публикациями компаний, когда первичный источник доступен. Мы не связаны с упомянутыми работодателями, не публикуем конфиденциальные задания и не продаём места в подборках. Формат найма может меняться — уточняйте его у рекрутера.

От чтения к воспроизведению

Отрепетируйте полный цикл интервью.

RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.

Начать подготовку

Продолжить подготовку

Библиотека собеседований RecallDeck

Подробные русские ответы, разборы этапов найма и планы подготовки для российского IT-рынка.

RSS