📌 Ответы на вопросы и задачу с собеседований
1️⃣ Как оценить переобучение без тестовой выборки?
1. С помощью кросс-валидации - если метрики сильно меняются между фолдами, то скорее всего мы переобучились.
2. По разнице между значениями метрик и лосс-функции на train и validation датасетах. Ошибка на validation сильно больше чем на train, значит есть переобучение. Если на train ошибка тоже большая, значит недообучение.
3. Посмотреть насколько “уверенно” предсказывает наша модель - большие значения могут свидетельствовать о переобучении.
2️⃣ Как быть, если у модели высокий precision, но низкий recall, а заказчик хочет наоборот — максимум охвата, даже ценой ложных срабатываний?
Главное — понимать, какая цена у ложноположительных и ложноотрицательных ошибок в задаче, в зависимости от этого мы можем делать трейдофф между precision и recall-ом следующими способами:
1. Самоё лёгкое решение - понизить порог классификации, допустим раньше объект с предсказанием модели 0.5 и выше определялся как положительный класс, а теперь сделать порог 0.3, а не 0.5. Выбрать новый порог можно построив PR-кривую.
2. Решения посложнее - изменить функцию потерь, чтобы сильнее наказывать пропущенные положительные примеры, в современных моделях градиентного бустинга (CatBoost, XGBoost) можно придать больший вес классу гиперпараметром. Сделать больше сэмплов положительного класса, даже с помощью oversampling-а (используя SMOTE, sklearn, data augmentations)
3. Ещё более сложный, но работающий вариант - сделать ансамбль моделей, где одна будет ловить всё, что может быть положительным классом
3️⃣ Чему будет равен ROC-AUC для следующих данных и предсказаний?
Истинная метка:
1 0 1 1 0
Предсказание модели - метка:
1 1 1 0 0
Предсказание модели - число:
0.9 0.8 0.7 0.4 0.3
Ответ - 0.667. Как легко посчитать - мини-гайд от Дьяконова
Автор: Александр Дубейковский, специалист по ML, ex-Yandex
#собеседование