Feature engineering для табличной задачи
Вопрос
Как вы подходите к созданию признаков для табличной задачи, например прогноза оттока клиентов?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Понимание домена и момента прогноза: признаки только из прошлого
Агрегаты по окнам: суммы, частоты, тренды за 7/30/90 дней, давность
Категории: one-hot, target encoding вне фолда, частоты
Обработка пропусков и выбросов, логарифмы для денег
Проверка пользы на валидации и важности, без утечек
Что могут спросить следом
- Как не утонуть в тысячах агрегатов?
- Где хранить признаки, чтобы в проде они считались так же, как в обучении?
Разбор
Начинаю с домена и точки прогноза: все признаки строятся по данным строго до неё. Для оттока основа это поведенческие агрегаты по окнам 7, 30 и 90 дней: число сессий и покупок, суммы, разнообразие категорий, давность последней активности, тренды (отношение последних 30 дней к предыдущим), обращения в поддержку и жалобы. Категории кодирую one-hot при малой кардинальности, иначе target encoding вне фолда или отдаю CatBoost. Денежные признаки логарифмирую, выбросы обрезаю, для пропусков добавляю индикаторы. Каждую группу признаков проверяю на валидации, а не верю интуиции, смотрю важности и SHAP, чтобы поймать подозрительные. Чтобы в проде признаки считались так же, как в обучении, держу их в общем коде или в feature store с point-in-time join, иначе получу training-serving skew.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.