Машинное обучение и временные данные

Вопрос или проблема

Я хочу предсказать коэффициенты конверсии для интернет-магазина. У меня есть данные из Google Analytics с такими характеристиками, как средняя продолжительность сессии, показатель отказов, количество посетителей по источникам и т. д., а также соответствующий коэффициент конверсии.

Это конкретный контекст для общего вопроса: я не уверен, как мне выбрать временные единицы для моих данных. Стоит ли экспортировать данные по дням, по неделям, по месяцам или по годам?

  • Когда у меня есть одна строка на день, у меня много данных (много строк), но также много шума, потому что данные о конверсии за один день разрозненные.
  • Когда у меня есть одна строка на год, у меня меньше шума, но также меньше данных (меньше строк).

В общем, какой правильный подход для выбора правильной временной рамки на строку в таком случае?

Я думаю, что сначала следует экспортировать данные с временной меткой, а затем добавить день, месяц … другие характеристики к данным. Это может помочь в повышении точности.

Для получения дополнительной информации вы можете обратиться к: Эта статья

Сначала было бы лучше обсудить случай использования с экспертом в данной области, если это возможно, и решить, имеет ли смысл предсказать коэффициенты конверсии на определенный будущий временной горизонт, скажем, ежедневно/еженедельно/ежемесячно/ежеквартально/ежегодно, используя исторические данные. В некоторых случаях предсказание на относительно коротком горизонте в 1 день или неделю может быть более выгодным, чем предсказание на среднем горизонте в 1-2 месяца. Конечно, вам придется позже исследовать набор данных, чтобы увидеть, обладает ли он какой-либо предсказательной силой для прогнозирования на тот заранее установленные временные горизонты.

Исходя из этого обсуждения, вы могли бы либо забрать агрегированные данные/статистику в соответствии с желаемой временной гранулярностью, либо просто забрать данные на самом низком доступном уровне гранулярности (например, ежедневно). В случае разреженного ежедневного набора данных попробуйте агрегировать данные на уровне недель.

Затем визуально исследуйте набор данных на желаемом или разных более высоких значениях временной гранулярности и посмотрите, есть ли свидетельства зависимости зависимой переменной (коэффициент конверсии) от предшествующих лагированных независимых переменных (лагированных на предполагаемый горизонт предсказания в n дней/недели и т. д.).

В зависимости от характера отношений вы могли бы построить традиционные регрессионные модели, эконометрические модели, такие как ARIMA или VAR, или даже построить продвинутые ансамблевые модели машинного обучения (используя XGBoostRegressor или RandomForestRegressor) или нейронные сети. Также посмотрите на пакет Facebook Prophet для этого случая использования.

Пример выражения линейной регрессии для этой проблемы, в которой я пытаюсь предсказать значение коэффициента конверсии, используя значение независимых переменных с лагом в 1 период:

conversionRate(t) = B0 + B1 * averageSessionDuration(t-1) + B2 * bounceRate(t-1) …

Я предполагаю, что это зависит от того, какую информацию вы хотите получить/что вы пытаетесь захватить/предсказать. Например, вы хотите понять влияние сезона на покупательские ставки? Годовые данные тогда не будут полезны. Возможно, попытка понять, в чем ваш вопрос, поможет в какой-то степени дать первую подсказку относительно частоты/временного интервала в ваших данных.

Кратко, убедитесь, как вы анализируете временные ряды, особенно как вы их делите не только по размеру временных “кусков”, но и не просто случайно, используя, например, разбиение на обучающую и тестовую выборки в sklearn, перекрестную проверку, из-за корреляций во временных рядах: https://machinelearningmastery.com/backtest-machine-learning-models-time-series-forecasting/ 🙂

Ответ или решение

Машинное обучение и временные данные: выбор временных интервалов для предсказания коэффициента конверсии

В контексте вашего проекта по прогнозированию коэффициента конверсии для интернет-магазина, правильный выбор временных интервалов для анализа данных играет критическую роль. Ваши данные из Google Analytics, включающие такие метрики, как средняя продолжительность сессии, коэффициент отказов, количество посетителей по источникам и сам коэффициент конверсии, могут быть использованы для построения модели, которая не только предсказывает коэффициент конверсии, но и помогает выявить ключевые зависимости между переменными.

1. Определение цели и потребностей

Первый шаг на пути к выбору временного интервала — это чёткое понимание целей вашего анализа. Необходимо задать себе вопросы:

  • Какой горизонт предсказания вы преследуете (день, неделя, месяц)?
  • Какую бизнес-задачу вы хотите решить: например, отслеживание краткосрочных изменений в поведении пользователей или анализ долгосрочных трендов?

Советую обсудить это с доменной экспертизой, чтобы понять, что именно им важно: прогнозирование конверсии на основе недельных акций или анализ годовых трендов.

2. Выбор временных интервалов

Существует несколько подходов к выбору временных интервалов:

  • Ежедневный уровень: Позволяет собрать большое количество данных с высокой частотой, что полезно для выявления краткосрочных трендов. Однако следует учитывать шум данных, связанный с малым количеством наблюдений в отдельные дни. Для решения этой проблемы можно использовать агрегацию данных за неделю.

  • Еженедельный уровень: Более сбалансированный подход, который уменьшает шум, одновременно предоставляя достаточно данных. Это хороший компромисс между частотой и качеством.

  • Ежемесячный или ежегодный уровни: Подходят для анализа долгосрочных трендов, таких как сезонные изменения. Это может быть полезно в случаях, когда нужно понять влияние крупных событий (например, праздников) на поведение потребителей.

3. Визуальный анализ и предварительная обработка данных

После выбора временного интервала, обязательно выполните визуальный анализ данных. Это поможет выявить возможные зависимости между изменяющимся коэффициентом конверсии и независимыми переменными. Применяйте методики, такие как:

  • Построение графиков для наглядного отображения изменений во времени.
  • Корреляционный анализ для оценки взаимовлияния переменных.

Добавление временных меток и создание дополнительных признаков, таких как булевы индикаторы (например, праздники, выходные) или сезонные признаки, поможет улучшить мощность вашей модели.

4. Выбор моделей и методов анализа

В зависимости от обнаруженных закономерностей, можно применять разные модели машинного обучения:

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

  • Экометрические модели: такие как ARIMA, полезны для временных рядов с их временной зависимостью.

  • Модели ансамблей: например, XGBoost или случайные леса, могут дать лучшие результаты благодаря своей способности справляться с шумом и сложной структурой данных.

  • Применение Facebook Prophet: специализированный инструмент для обработки временных рядов, который учитывает сезонность и тренды.

5. Тестирование и валидация моделей

Как вы отмечали, важно помнить о различных методах валидации, поскольку прямой разбиение данных на обучающую и тестовую выборки может привести к искажению результатов из-за временной зависимости. Используйте технологии кросс-валидации, которые учитывают временной порядок данных.

Заключение

В выборе временных интервалов для обработки временных данных в контексте машинного обучения нет универсального решения. Каждый проект уникален, и успех анализа зависит от качества данных, а также понимания бизнес-требований. Используя предложенные стратегии, вы сможете создать более надежные модели, которые помогут вам прогнозировать коэффициент конверсии и принимать обоснованные бизнес-решения.

Оцените материал
Добавить комментарий

Капча загружается...