Сначала фиксируют момент предсказания
В нашей модели решение принимается до завершения доставки. В этот момент могут быть известны вес отправления, зона назначения и запланированный срок. Фактическое время прибытия ещё неизвестно. Если включить его в таблицу признаков, модель получит информацию, которой не будет при реальном использовании. Даже сложное название столбца не меняет этого. Полезно для каждого поля записать, когда оно появляется и доступно ли в нужный момент. Временная граница важнее удобства готовой выгрузки.
Целевая переменная хранится отдельно по смыслу
Метка задержано или вовремя описывает результат, который модель должна научиться предсказывать. Во время обучения она используется как целевая переменная. Но включение той же информации в признаки, прямо или через производный показатель, делает проверку нечестной. Например, поле итоговый статус доставки может фактически раскрывать ответ. Необходимо смотреть не только на название, но и на происхождение данных. Удаление столбца с очевидным именем не поможет, если его содержание осталось в другом виде.
Предобработка тоже может переносить сведения
Разделение строк на обучение и проверку не решает все проблемы автоматически. Если параметры преобразования, например значения для заполнения пропусков, рассчитаны по всей таблице заранее, проверочная часть уже повлияла на обучение. Обучаемые параметры предобработки получают только на соответствующей обучающей части, затем применяют к другим данным. Конвейер обработки помогает соблюдать этот порядок. Однако он не исправит признак из будущего: правильная техническая последовательность не заменяет понимания того, когда сведения были доступны.
Проверочная выборка должна соответствовать задаче
Если будущая работа связана с новыми периодами, случайное перемешивание всех исторических строк может плохо отражать реальную ситуацию. Также важны повторяющиеся объекты и связанные записи. Способ разделения выбирают по устройству данных, а не только по привычной доле. После удаления утечки качество может снизиться, но оценка станет содержательнее. Полезно отдельно фиксировать, что измеряется, на каких данных и какие ограничения остаются. Один высокий показатель не является доказательством готовности модели к использованию.
Попробуйте на практике
Проверьте поля вымышленной таблицы доставки на соответствие моменту предсказания, не обучая модель.
- Запишите момент решения: заказ отправлен, доставка ещё не завершена. Перечислите вес, зону назначения, плановый срок, фактическое прибытие и итоговую метку задержки.
- Для каждого поля отметьте, известно ли оно в этот момент и относится ли к признакам или к целевому результату.
- Представьте, что пропуски заполнили средними значениями всей таблицы до разделения. Объясните, почему порядок нужно пересмотреть.
- Составьте корректную последовательность: определить доступные поля, выбрать разделение, обучить предобработку на обучающей части и проверить на отделённых данных.
Как проверить результат. Фактическое прибытие и итоговая метка не используются как доступные заранее признаки. Проверочная часть не участвует в обучении преобразований, а способ разделения связан с будущим применением.
Частые вопросы
Если использовать конвейер, утечка полностью исключена?
Нет. Он помогает организовать предобработку, но не понимает смысл полей и временную доступность информации. Эти вопросы проверяет автор задачи.
Падение качества после удаления утечки означает неудачу?
Оно может означать, что прежняя оценка была завышена. Более честный результат полезнее для понимания ограничений и дальнейшей работы.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.