Как поступать, если доход клиента неизвестен?
Что проверяют
Умеете ли вы работать с пропусками осмысленно, а не заливать их средним по привычке. Интервьюеру важно, спросите ли вы, почему дохода нет и для чего строится модель. Следом обычно спрашивают, как не допустить утечки при заполнении.
Как отвечать
Начните с механизма пропуска, от него зависит метод:
- MCAR: данные пропали случайно, например из-за сбоя анкеты. Простое заполнение почти безопасно;
- MAR: пропуск объясняется другими признаками, скажем, доход чаще не указывают молодые клиенты. Работает заполнение по похожим объектам;
- MNAR: пропуск зависит от самого дохода, его скрывают люди с очень низким или очень высоким заработком. Сам факт пропуска здесь несёт информацию.
Дальше каркас решения:
- флаг пропуска: бинарный признак
income_missingпочти всегда стоит добавить, модель сама решит, важен ли он; - простая импутация: медиана устойчивее среднего, доход сильно скошен вправо. Медиана по сегменту (регион, профессия, возраст) лучше, чем по всей выборке;
- модельная импутация:
KNNImputer,IterativeImputerиз scikit-learn (второй до сих пор помечен как экспериментальный) или отдельная регрессия дохода на косвенных признаках: обороты по карте, регулярные поступления, регион; - без импутации: LightGBM, XGBoost и CatBoost обрабатывают
NaNсами, выбирая направление ветки для пропусков.
Импутер обучается только на трейне, внутри Pipeline, и применяется к валидации с теми же параметрами. Варианты сравнивайте по целевой метрике на кросс-валидации.
Упомяните бизнес-сторону: в кредитном скоринге оценённый доход нельзя выдавать за подтверждённый, у регулятора свои правила учёта дохода.
Где спотыкаются
Заполняют средним по всей выборке. Пара клиентов с миллионным доходом сдвигает значение, и модель видит у всех «среднего» человека, которого в данных нет.
Считают медиану по всему датасету до разбиения на трейн и тест. Это утечка: метрика на валидации получается оптимистичнее, чем будет в проде.
Выбрасывают строки с пропусками. Если доход не указан у трети клиентов и это не случайно, выборка смещается, и модель хуже работает именно на тех, кого предстоит оценивать.