Ответ вслух Middle Признаки и интерпретация обновлено

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 ошибок.