Подумайте о внешних факторах. Допустим, вы продаете зонтики. Ваша выручка, скорее всего, будет зависеть от количества дождливых дней. Значит, вам нужны исторические погодные данные. Вы торгуете в B2B-секторе? Тогда на ваш успех может влиять индекс деловой активности в отрасли ваших клиентов. Это уже макроэкономические данные. Сезонность, государственные праздники, курс валюты, активность конкурентов – всё это потенциальные ингредиенты для вашего ‘супа’. Запишите всё, что приходит в голову. На этом этапе лучше собрать слишком много, чем упустить что-то важное. Вспомните свой бизнес. Какие неочевидные на первый взгляд события в прошлом вызывали всплеск или провал в продажах? Возможно, ремонт дороги рядом с офисом или выход популярного блогера, который случайно упомянул ваш продукт. Такие ‘уникальные’ данные часто и дают самое большое преимущество.
Уборка на кухне: чистка и обработка сырья
Итак, данные собраны. Теперь они лежат перед вами в виде нескольких таблиц, файлов, может быть, даже бумажных отчетов за прошлые годы. Картина часто напоминает бардак в гараже после долгой зимы. Тут половина значений пропущена, там продажи за какой-то день записаны как ‘н/д’ или ‘примерно сто тысяч’, а в третьем месте даты имеют формат ‘01.01.2023’, ‘January 1, 2023’ и ‘2023-01-01’ одновременно. Модель такой хаос не переварит. Нам нужен порядок.
Чистка данных – это процесс приведения всего к общему знаменателю. Во-первых, нужно разобраться с пропусками. Если в данных не хватает каких-то значений, их нужно либо восстановить, либо аккуратно удалить. Восстановление – это целое искусство. Можно взять среднее значение за соседние периоды, можно использовать значение за тот же день недели в прошлом месяце. Главное – понимать, почему данные пропали. Если система учета сломалась на неделю – это одна история. Если в тот день магазин был закрыт по причине потопа – это совсем другая, и просто вставить среднее значение будет ошибкой.
Во-вторых, нужно привести данные к одному формату. Все даты – в единый стандарт (лучше всего YYYY-MM-DD). Все числа – с разделителем в виде точки, а не запятой. Все текстовые категории (например, названия регионов или типы клиентов) – унифицировать. ‘Москва’, ‘г. Москва’ и ‘МСК’ для модели – три разных города. Это тихая, но катастрофическая ошибка, которая сведет на нет все ваши дальнейшие усилия.
Инженерия признаков: создаем новые ингредиенты
Иногда сырые данные сами по себе не очень питательны. Но если их правильно скомбинировать или обработать, они раскрывают свой истинный вкус. Этот процесс называется ‘инженерией признаков’ или ‘созданием признаков’. Он превращает вас из простого сборщика данных в настоящего шеф-повара данных.
Что это значит на практике? Допустим, у вас есть столбец с датами каждой продажи. Сам по себе он мало о чем говорит. Но если вы извлечете из даты день недели, номер месяца, квартал, отметку о выходном или празднике – вы создадите целый набор новых, мощных признаков. Модель сама может найти связь, что по субботам продажи выше, а в конце квартала – ниже. То же самое с числами. Из общей выручки можно вычислить средний чек. Из трафика и числа покупок – конверсию. Вы можете создавать скользящие средние – например, среднюю выручку за последние 7 дней, которая сглаживает случайные всплески и показывает тренд.
Подумайте, как можно описать динамику. Не просто ‘продажи вчера были X’, а ‘продажи вчера выросли на Y% по сравнению с неделей назад’. Это уже другой, более информативный взгляд на данные. Это как взять простую морковку и нарезать её соломкой, звёздочками или цветочками – суп-то будет один и тот же, но его восприятие и глубина вкуса совершенно разные.
Последняя проверка перед готовкой
Когда все данные почищены, преобразованы и обогащены, наступает момент финальной проверки. Нужно посмотреть на них свежим взглядом. Постройте простые графики. Посмотрите на динамику ключевых показателей. Нет ли там странных, ничем не объяснимых пиков или провалов? Например, если вы видите, что в один прекрасный день продажи выросли в 100 раз, а на следующий упали до нуля, скорее всего, это ошибка в данных (или вам очень-очень повезло, а потом случился конец света). Такие выбросы нужно либо исправить, либо удалить, иначе они собьют с толку вашу модель, и она начнет ждать нового апокалипсиса вместо обычных рабочих дней.