1---2name: feature-engineering3description: Применяйте при определении, реализации или проверке признаков ML и хранилища признаков; проверяйте доступность данных на момент прогноза, соединения с учётом версий, обучение преобразований только на тренировочных данных и совпадение офлайн- и онлайн-значений.4---56# Разработка признаков78## Контракт прогноза910- Определите единицу и момент прогноза, горизонт целевой переменной, владельца и источник признака, ключ сущности, гранулярность, задержку доступности, свежесть и контракт использования при прогнозировании.11- Отличайте время события от момента, когда значение стало доступно для прогноза; сохраняйте историю версий, если последующие исправления меняют исторические признаки.1213## Ключевые решения14151. Формируйте исторические признаки только из значений, доступных к соответствующему моменту прогноза, явно задав включение или исключение границ. Более раннее время события не делает поздно поступившую запись доступной задним числом.162. Выполняйте соединения на уровне единицы прогноза и проверяйте дублирование примеров, пересечение интервалов справочников и отсутствующие сущности. Используйте доступную тогда версию, а не сегодняшнее исправленное значение.173. Обучайте преобразования, кодировщики, заполнение пропусков и отбор признаков только на тренировочных частях данных. Разделяйте сущности при оценке обобщения на новые сущности и время при оценке будущих прогнозов; сочетайте оба ограничения, только если этого требует заявленный сценарий применения.184. Сравнивайте офлайн- и онлайн-признаки для одних сущностей и временных меток, включая пропуски, значения по умолчанию, порядок, часовые пояса и свежесть. Общая функция полезна, но не доказывает эквивалентность данных, поступающих на её вход.1920## Результат и проверка2122- Подготовьте определение или реализацию признака с ключами, правилами времени события и доступности, версиями преобразований, значениями по умолчанию и владельцем.23- Где это применимо, проверьте своевременное, позднее и исправленное значение, а также отсутствующую сущность; измерьте совпадение значений и кратность соединений на представительных примерах.24- Отдельно укажите охват, свежесть, сигналы дрейфа и задержку получения целевой переменной; сам по себе дрейф не доказывает снижение качества прогнозов.25- Используйте существующий контракт признаков или карточку модели, если они доступны и помогают задаче.2627## Ограничения2829- Не используйте будущую информацию при обучении и не предполагайте совпадение офлайн- и онлайн-значений.30- Не называйте соединение по времени события корректным на момент прогноза без проверки времени доступности.