Обнаружение жизненного цикла товаров (отчет)

Материал из MachineLearning.

Перейти к: навигация, поиск

Введение в проект

Описание проекта

Цель проекта

Цель проекта - прогнозирование еженедельных покупок товаров. Горизонт прогнозирования - одна неделя.

Обоснование проекта

Полученные результаты могут быть использованы для планирования закупок товаров магазинами.

Описание данных

Дан региональный классификатор магазинов, товарный классификатор, stock keeping unit, список праздничных дней и, отдельно по каждому товару, список дней, в которые проводились промо-акции.

Критерии качества

Прогноз производится отдельно по каждому из товаров. Мы составляем еженедельный прогноз с горизонтом неделя, основанный на предыдущей истории покупок. Критерием качества служит средний модуль отклонения прогноза от реальной величины покупок.

Требования к проекту

Средний модуль отклонения для нашего алгоритма должен быль меньше, чем для скользящего среднего за предыдущий месяц.

Выполнимость проекта

Прогнозирование покупок тоаров в празничные дни и во время промо-акций является отдельной задачей и в данном проекте не рассматривается.

Используемые методы

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

Постановка задачи

Заданы временные ряды продаж товаров x_{ij}(t) \in R — продажи i-ого товара в j-ом магазине за неделю t (i \in I, I — множество товаров; j \in J, J — множество магазинов; t \in N — натуральное число), причем значения продаж известны при t_0 \leq t \leq t_1. Задан t_2 - горизонт прогнозирования. Требуется для всех товаров и всех магазинов спрогнозировать продажи за неделю, следующую после t_1+t_2, то есть значение величины

y_{ij} = x_{ij}(t_1+t_2+1).

Для оценки качества прогнозов будем использовать скользящий контроль, помещая в обучающую выборку значения x_{ij}(t) при t \in [t_0, t_{max}], t_{max} < t_1. Как функционал качества будем использовать

Q_{m}(Y, \hat{Y}) = \sum_{i, j}|y_{ij}-\hat{y}_{ij}|.

Описание алгоритмов

Обзор литературы

Базовые предположения

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

Математическое описание

Базовый алгоритм

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

\hat{y}_{ij}^0 = \frac{1}{w} s_{ij}(w),

где w=8 — ширина окна,

s_{ij}(w)=\sum_{t = t_1-w+1}^{t_1}x_{ij}(t).

Алгоритм учета жизненного цикла

1. Задается два параметра sw и grow.

2. Временной ряд продаж товара разбивается на три отрезка. Первый от момента вхождения \tau_0 до \tau_0+sw. Второй - [\tau_0+sw+1, \tau_0+sw+grow]. Заключительный - от \tau_0+sw+grow+1 до окончания продаж товара.

3. Первый отрезок соответствует этапу вхождения товара на рынок. На нем предполагается использование базового алгоритма для прогнозирования.

4. Втором и третий отрезоки соответствуют росту популярности товара на рынке и спада объема продаж. На них прогноз строится при помощи линейной регрессии: Задается параметр h - число точек для построения прямой.

\hat{y}_{ij}(\tau) = w_0+w_1x_{ij}(t), где (w_0,w_1) = {arg}\min_{(w_0,w_1)}\sum_{t = \tau-h}^{\tau-1}|w_0+w_1x_{ij}(t)-y_{ij}(t)|.

При этом на втором этапе прогнозу запрещается более чем в ε раз меньше скользящего среднего (в работе ε = 2), на третьем прогнозу запрещается быть более чем в σ раз больше скользящего среднего (в работе σ = 1).

Варианты или модификации

Описание системы

  • Ссылка на файл system.docs
  • Ссылка на файлы системы

Отчет о вычислительных экспериментах

Визуальный анализ работы алгоритма

Анализ качества работы алгоритма

Анализ зависимости работы алгоритма от параметров

Отчет о полученных результатах

Список литературы

Данная статья является непроверенным учебным заданием.
Студент: Участник:Юрий Янович
Преподаватель: Участник:В.В. Стрижов
Срок: 15 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Личные инструменты