TGViewer
Модель предскажет Модель предскажет @modprod · 390 subscribers
Post #17 1.36K
Как одна «незначительная» фича сломала модель в бою

Привет! На связи Мария Жарова, ментор курсов «ML-инженер» и «Дата-сайентист» 👋🏻

Хочу поделиться кейсом, который хорошо показывает, как «безобидный» признак может неожиданно повлиять на модель.

Мы решали задачу предсказания оттока пользователей. Классическая история: табличные данные, градиентный бустинг, аккуратный пайплайн, валидация — всё как надо. На кросс-валидации модель давала стабильный прирост к бейзлайну, метрики выглядели уверенно.

Перед выкаткой решили добавить ещё одну фичу — «время последнего действия пользователя». На первый взгляд, абсолютно логичный и даже полезный признак. После добавления метрика на валидации ещё немного подросла — казалось бы, идеальный кандидат в прод.

Но через несколько дней после выкатки метрики в проде поползли вниз… Сначала думали на данные, потом на инфраструктуру, потом на сдвиг распределений — но оказалось, дело в одной фиче! Как раз «время последнего действия» в обучении считалось относительно фиксированной даты (условно, «срез данных на момент выгрузки»). А в проде — относительно текущего времени.

Звучит безобидно, но по факту:
➖ в обучении модель видела, что«“клиент давно не заходил» — это, например, 30 дней;
➖ в проде это же значение могло стать 60, 90 и т. д., потому что время идёт, а логика пересчёта не была синхронизирована.

В результате распределение признака в проде уплыло относительно train, и модель начала получать значения, которых «не видела» на обучении — поэтому предсказания поехали.

Более того, этот признак оказался одним из самых важных — модель сильно на него опиралась, и даже небольшая логическая несостыковка дала ощутимый эффект.

Поэтому всегда имейте в виду:
😶 Любая фича, завязанная на время — почти всегда источник проблем, если не продумана логика её расчёта в проде;
😶 Важно проверять не только код обучения, но и код генерации признаков для прода — они должны быть идентичны по смыслу;
😶 Полезно смотреть на распределения признаков: train vs prod, хотя бы на базовом уровне;
😶 Если фича становится топ-важной — к ней должно быть повышенное внимание, потому что именно она может «уронить» модель.


И да, чаще всего модель ломает не сложная математика, а такие вот мелочи, которые сначала кажутся очевидными.

Сохраняйте, чтобы не наступить на те же грабли!
  • ❤ 6
  • ✍ 5
  • 🔥 4
  • 👍 2
More from @modprod
  1. Sep 22, 2026Post #79
  2. Sep 22, 2026Post #78
  3. Sep 22, 2026Post #77
  4. Sep 22, 2026Всем привет! Небольшой опрос нашей аудитории — пожалуйста, ответьте на несколько вопросов…
  5. Sep 7, 2026🔥 Новый поток интенсива по ML 9-16 сентября пройдёт следующий поток ML-интенсива с ментор…
  6. Sep 1, 2026Между тем, как выглядит ML в курсах и соревнованиях, и тем, как он устроен в реальной повс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →