Разбор
Предобработка данных для машинного обучения: порядок действий
Как подготовить таблицу к обучению: единица наблюдения, пропуски, категории, масштаб и разделение данных. Проверяем, что преобразования доступны в работе.
Предобработка превращает исходные записи в входные данные для модели. Она включает проверку структуры, работу с пропусками, представление категорий и другие преобразования, которые нужны конкретному методу.
Главное условие: на этапе использования модель должна получать данные по тем же правилам, что и при обучении. Если подготовка существует только как набор ручных правок в чужом Excel, повторить её в сервисе будет трудно.
Установите, что означает строка
В учебной таблице магазина строка может описывать заказ, товар в заказе или платёж. Повтор идентификатора заказа во втором случае нормален, а в первом может указывать на дубликат. Поэтому команда «удалить все повторы» без определения объекта опасна.
Проверьте ключи связей, единицы, временную зону и границы периода. Сумма в копейках и сумма в рублях имеют похожий вид, но разные масштабы. Дата создания и дата оплаты отвечают на разные вопросы.
Составьте небольшой словарь полей до очистки. Для каждого столбца укажите смысл, источник и момент появления. Так легче обнаружить сведения, которых ещё нет во время будущего прогноза.
Разделите данные до настройки преобразований
Если нужно вычислить среднее для заполнения пропуска или параметры масштабирования, используйте обучающую часть. Проверочная часть служит оценке того, как весь процесс справится с новыми объектами.
Для временной задачи сохраняйте подходящий порядок наблюдений. Для нескольких записей одного клиента учитывайте связь между строками. Случайное разделение отдельных строк не всегда соответствует тому, как система будет работать дальше.
Удобно хранить подготовку вместе с моделью как единый воспроизводимый процесс. Тогда при проверке и использовании легче избежать случайного применения другой версии правил.
Разберите причины пропусков
Пустая дата отправки может означать, что заказ ещё не отправлен, событие не загрузилось или такой способ получения не предусматривает отправку. Эти ситуации имеют разный смысл.
Заполнение нулём, средним или отдельной категорией требует обоснования. Иногда полезен признак отсутствия значения. Иногда сначала нужно исправить сбор данных. Выбор определяется задачей и причиной пропуска.
После обработки проверьте, какая доля данных изменилась. Если большинство строк заполнено догадками, качество исходной таблицы становится отдельным ограничением эксперимента.
Представьте категории и числа подходящим способом
Код склада, канал обращения и вид доставки - категории. Их числовые обозначения не обязательно имеют порядок и расстояние. Для некоторых методов потребуется специальное кодирование, например отдельные индикаторы категорий.
Числовые поля могут нуждаться в масштабировании. В документации scikit-learn описаны стандартизация, преобразование диапазона и другие варианты. Их выбирают по данным и алгоритму, а не применяют все подряд.
Подготовьте обработку новой категории, которой не было в обучении. Ошибка или молчаливое неверное кодирование при её появлении проявятся уже в рабочем процессе, если такой случай не проверить заранее.
Сохраните контрольные проверки
После преобразования сравните число строк, ключи объектов, список полей и долю пропусков. Убедитесь, что целевой ответ не попал во входы через промежуточный столбец. Отдельно проверьте необычные значения и строки с неполными данными.
Зафиксируйте версию правил и набор данных, на котором они настраивались. При новой загрузке повторите проверки, прежде чем пересчитывать качество модели. Для содержательного описания входов пригодится руководство по признакам.
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
Читайте также
Канал «Лёха Маркетолог»
Практика без воды: кейсы, инсайты, разборы. 1–2 поста в неделю.
Пока без комментариев. Будьте первым.