Записки из промышленности

Панель прогнозирования спроса в электронной коммерции

Использование машинного обучения для лучшего прогнозирования и понимания цифрового рынка

Эта статья была подготовлена ​​в рамках финального проекта Гарвардского курса AC297R Fall 2021.

Члены команды: Шивананда Раджананда, Райан Лю, Дэвид Ассараф, Джункай Онг

Партнеры по модели: Джейкоб Миллер, Гамильтон Ноэль

Научный сотрудник: Зона Костич

Инструктор: Крис Таннер

описание проблемы

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

Мы работали с Pattern, акселератором электронной коммерции, чтобы создать панельную модель прогнозирования, которая предсказывает спрос на 8 недель вперед. Производительность нашей модели будет сравниваться с моделью скользящей средней за 28 дней, которая служит базовой моделью.

Данные

Был предоставлен набор данных с показателями продаж продуктов на ежедневном уровне с января 2018 года по ноябрь 2021 года. Набор данных содержит около 11,5 миллионов строк и относится к продажам на Amazon.com. Поля набора данных включают в себя псевдонимизированный код поставщика (бренда), код продукта, регион, дату, объем продаж, инвентарь и процентную долю покупки. Инвентаризация и процентная информация о покупке являются внутренними показателями и могут иногда отсутствовать. В ситуациях, когда несколько продавцов продают один и тот же продукт на Amazon, поле покупки определяет, какой продавец получает право на продажу, когда покупатель покупает продукт. Процент покупной коробки — это метрика, оцениваемая шаблоном ежедневно, и эта функция добавляет еще один уровень сложности к прогнозированию спроса, поскольку рост продаж для конкретного продавца может быть связан с более высоким спросом на продукт и/или более высоким процентом покупной коробки для тот продавец. Кроме того, информация о запасах может быть полезна для нашего прогнозирования, поскольку исчерпание запасов (дефицит) может повлиять на наблюдаемые продажи.

Мы решили сосредоточиться на продажах в регионе США, поскольку большинство продаж приходится на США.

Исследовательский анализ данных (EDA)

На рис. 1 показано общее количество дневных единиц для всего диапазона данных. На рисунке также видно, что в прайм-день, Черную пятницу и Рождество ежегодно продаются всплески единиц, что соответствует крупным распродажам. Таким образом, мы создали индикаторные переменные (см. далее раздел «Разработка функций») для определенных праздников, чтобы учитывать эти события в нашем моделировании. Мы видим большую волатильность продаж во время пандемии Covid. В частности, в начале Covid наблюдается всплеск (возможно, из-за увеличения спроса на определенные витамины и товары для здоровья), резкое падение и быстрое восстановление во второй половине 2020 года, а также относительно стабильные продажи в течение 2021 года.

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

Методология — Обзор

Мы приняли трехэтапный подход к панельному прогнозированию, как показано на диаграмме ниже. Для очистки данных мы отфильтровали данные за пределами США и агрегировали их до недельного уровня (чтобы смягчить влияние ежедневной волатильности). Для разработки функций мы создали новые функции для сбора скрытой информации. При моделировании мы исследовали базовую модель (то есть скользящую среднюю за 28 дней), XGBoost, различные модели LSTM и, наконец, объединили их все с помощью модели ансамбля.

Методология — подход к обучению и оценке

Нашей оценочной метрикой является средняя абсолютная ошибка (MAE), и она измеряется независимо для каждой прогнозируемой недели. Во время оценки мы также удалили наблюдения, в которых эталон (28-дневная скользящая средняя) был равен 0, поскольку человек, использующий эталон в качестве оценки будущего спроса, скорее всего, не предскажет 0 продаж, если он знает, что продукт, вероятно, будет продаваться.

Чтобы обучить и оценить модель, мы разделили данные обучения, проверки и тестирования по дате:

  • Набор обучающих данных: до 28 февраля 2021 г.
  • Набор данных проверки: с 1 марта 2021 г. по 30 апреля 2021 г.
  • Набор тестовых данных: с 1 мая 2021 г.

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

У нас есть 2 метода обучения:

  1. Неонлайн обучение. В неонлайн-обучении мы вычисляем MAE прогнозов нашей модели на тестовом наборе данных.
  2. Онлайн обучение. В онлайн-обучении мы итеративно обновляем нашу модель с каждой новой неделей данных в тестовом наборе, чтобы предсказать спрос на следующий набор недель. Этот метод (также показанный на рис. 4) имитирует реальную среду, поскольку модели могут еженедельно обновляться в процессе производства.

Обработка данных, разработка функций

Мы разработали различные дополнительные функции в дополнение к тем, что были в исходном наборе данных. Скользящие сводные статистические данные о проданных единицах (т. е. среднее значение, стандартное отклонение, минимум, максимум, 25-й процентиль, 50-й процентиль и 75-й процентиль) были рассчитаны для временных рамок 1, 2, 3, 4, 12, 26, 52 недели до и добавлен в набор данных. Таким образом, каждая строка содержит не только данные о продажах за неделю, но и информацию за предыдущие 4 недели. Мы также рассчитали сводную статистику по проценту покупной коробки для таймфреймов 12, 26 и 52 недели. Эта дополнительная информация позволит модели фиксировать краткосрочные тренды и обнаруживать возможную аномалию в данных текущей недели.

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

Количество недель с момента последней продажи продукта и сумма последней продажи также были добавлены в качестве характеристик. Мы также добавили общий объем единиц, проданных для каждого продукта на эту дату, как показатель долгосрочных исторических показателей продаж. Поскольку продукты, скорее всего, следуют сезонным циклам, мы разработали функцию, которая включает средние продажи за 2 недели предыдущего года (т. е. средние продажи за 52–53 недели до текущей недели).

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

Чтобы использовать статистическую силу продуктов с похожими тенденциями продаж, мы выполнили кластеризацию временных рядов на основе последних 52 недель продаж в единицах данных обучения. Мы объединили продукты в 6 кластеров, используя 3 различных алгоритма кластеризации: (1) евклидова кластеризация k-средних, (2) динамическая деформация времени (DTW) и (3) DTW усреднение барицентра (DBA).

Моделирование

В дополнение к базовой модели (28-дневная скользящая средняя) мы решили работать с различными моделями (а именно XGBoost, LSTM, CNN-LSTM и авторегрессионный LSTM), чтобы использовать их различные сильные стороны. Известно, что XGBoost обладает высокой производительностью в определенных задачах прогнозирования, относительно быстро обучается и очень масштабируем. Модели LSTM созданы для последовательных данных и данных временных рядов, поскольку они могут обрабатывать временные метки различной длины. Затем мы объединяем модели с ансамблевой моделью (в форме случайного лесного регрессора) в конце для достижения благоприятных результатов.

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

Базовая модель (28-дневная скользящая средняя)

Базовая модель представляет собой простую 28-дневную скользящую среднюю. Это означает, что для каждого продукта прогнозируемый спрос на любую произвольную неделю на 1–8 недель вперед представляет собой простое среднее количество единиц, проданных за 28 дней до этого.

Чтобы визуализировать, работает ли базовая модель лучше для продуктов с более высокой или низкой ликвидностью, мы построили график относительной абсолютной ошибки базовой модели ( |y_pred — y_true | / y_true) в зависимости от ликвидности продукта. На рисунке 5 показано, что корреляция между объемом данных и производительностью 28-дневной базовой модели отсутствует.

Ниже представлено визуальное представление прогнозов базовой модели для одного продукта, сравнивающее базовую производительность при прогнозировании через 1 неделю и через 8 недель в будущем. На каждую дату прогноза 28-дневная скользящая средняя используется для прогнозирования продаж на следующие 8 недель. Мы видим, что эта базовая линия позволяет прогнозировать спрос на неделю вперед, но плохо работает после первых нескольких недель, если только продажи не будут достаточно стабильными.

XGBoost

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

Модель XGBoost, обученная на наших инженерных функциях с гиперпараметрами по умолчанию, смогла превзойти эталонный показатель, основанный на MAE тестового набора, основанного на 3000 лучших продуктов, см. рис. 7 ниже.

XGBoost: настройка гиперпараметров (HP)

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

XGBoost: онлайн-обучение

Впоследствии мы провели онлайн-обучение и оценили нашу модель. После каждой недели в тестовом наборе модель переобучается на периоде данных до этой недели. Таким образом, модель обновляется новой информацией, которая была бы доступна в рабочей среде, и никакая будущая информация не используется для обучения модели на дату прогнозирования. Кроме того, эта методология лучше учитывает сдвиги в распределении данных. Если тестовые данные имеют другое распределение, чем обучающие данные (что верно в данном случае, поскольку продажи обычно растут), то необходимо обновить модель, чтобы она не устарела для дальнейшего прогнозирования в будущем. На следующем рисунке сравниваются полученные MAE для модели XGBoost с онлайн-обучением и без него. Мы наблюдаем, что онлайн-обучение значительно повышает производительность модели, особенно в течение нескольких недель в будущем.

XGBoost: разная продолжительность периода, используемого для онлайн-обучения.

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

XGBoost: 100 лучших продуктов

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

XGBoost: прогнозирование от 9 до 16 недель

Прогнозирование спроса более чем на 8 недель вперед может помочь брендам узнать, сколько нужно производить. Таким образом, мы оцениваем производительность нашей модели по сравнению с эталоном при прогнозировании на срок до 16 недель. Мы наблюдаем, что при онлайн-обучении улучшение нашей модели по сравнению с эталоном увеличивается по мере увеличения количества недель до начала. В то время как эталонная и модельная MAE увеличиваются, модельная MAE растет медленнее, чем эталонная, поскольку она учитывает другие особенности в своем прогнозе.

ЛСТМ

Мы изучили 3 ключевых дизайна LSTM, а именно:

  1. Обычный LSTM. Мы исследовали использование обычного LSTM, который подойдет для данных и приложений на основе временных рядов, таких как прогнозирование спроса на панели.
  2. CNN-LSTM. CNN-LSTM будет использовать слои CNN для улучшения извлечения признаков перед прогнозированием последовательности с помощью LSTM.
  3. Авторегрессионный LSTM. Авторегрессионный LSTM позволит нам использовать авторегрессию на исторических данных временных рядов.

Обычный LSTM и CNN LSTM

Мы провели следующие эксперименты с обычными LSTM и CNN LSTM, чтобы понять влияние следующих факторов на производительность.

Обычный LSTM и CNN LSTM: 1 глобальная модель против недельной модели

Мы изучили следующие ключевые подходы для LSTM, а именно:

  1. 1 модель LSTM для всех недель и всех продуктов (глобальная модель)
  2. 1 модель LSTM в неделю для всех продуктов (недельная модель)

Результаты эксперимента представлены на рисунке ниже.

На рисунке выше мы видим, что производительность недельной модели превосходит производительность глобальной модели с 1 по 7 неделю. Это может быть связано с тем, что LSTM, смоделированный на каждой неделе, позволяет изучить более узкую задачу прогнозирования определенного временного диапазона. в будущем может привести к повышению производительности, поскольку модель оптимизирована для этой задачи, а не балансирует производительность по периодам времени.

Обычный LSTM и CNN LSTM: переменная длина входной последовательности LSTM

Мы исследовали влияние на производительность изменения длины входной последовательности в моделях LSTM. Для нашего проекта мы выбрали длину 2, 6, 10, 14, 18. Результаты показаны на рисунках ниже.

Как видно на рисунках выше, как правило, по мере увеличения длины входной последовательности с 2 до 14 производительность LSTM (с точки зрения MAE) улучшается. Однако, когда длина последовательности становится равной 18, мы заметили, что производительность стала намного хуже. Это может быть связано с тем, что, хотя более длинная длина входной последовательности позволяет LSTM лучше изучать исторические тенденции, когда длина входной последовательности становится слишком большой, обучение модели становится чрезмерно сложным, и модель не может хорошо подходить для прогнозирования. данные.

Обычный LSTM и CNN LSTM: 100 лучших продуктов

Мы изучили производительность обычных LSTM и CNN LSTM для 100 лучших продуктов. Результаты показаны на рисунках ниже.

Как видно на диаграммах выше, при прогнозировании спроса на 100 лучших продуктов и обычный LSTM, и CNN-LSTM были намного хуже эталона (28-дневная скользящая средняя) без онлайн-обучения. Однако как обычный LSTM, так и CNN-LSTM смогли достичь производительности MAE, которая была близка к эталону (28-дневная скользящая средняя) после онлайн-обучения. Это может быть связано с тем, что онлайн-обучение позволило обновить ранее обученную модель новыми данными, тем самым улучшив ее производительность.

Обычный LSTM и CNN LSTM: 3000 лучших продуктов

Мы изучили производительность обычных LSTM и CNN LSTM для 3000 лучших продуктов. Результаты показаны на рисунках ниже.

Как видно на диаграммах выше, при прогнозировании спроса на 3000 лучших продуктов, аналогичного спросу на 100 лучших продуктов, и обычный LSTM, и CNN-LSTM были намного хуже, чем контрольный показатель (28-дневная скользящая средняя) без онлайн-прогнозирования. обучение.

Однако после онлайн-обучения как обычный LSTM, так и CNN-LSTM смогли достичь производительности MAE, которая была лучше эталона (28-дневная скользящая средняя) в течение 1–2 недель, при этом производительность MAE была хуже, чем эталон. через 2 недели. Это может быть связано с тем, что онлайн-обучение позволило обновить ранее обученную модель новыми данными, тем самым улучшив ее производительность.

Авторегрессионный LSTM

Мы решили реализовать авторегрессивный LSTM (AR-LSTM), поскольку это потенциально элегантное решение проблемы. AR-LSTM принимает данные о продукте за 10 временных шагов (т. е. за 10 недель), а затем делает прогноз количества единиц, проданных за 11-ю неделю. Поскольку многие функции зависят от проданных единиц, прогноз для 11-й недели затем используется для создания функций в качестве входных данных для прогноза для 12-й недели. Разработка этой функции выполняется «на лету» во время обучения и тестирования.

Поскольку LSTM не может обрабатывать значения NaN, мы предварительно заполнили значения для каждого продукта, а затем заполнили оставшиеся значения NaN (т. е. в начале жизненного цикла продукта, где не было предыдущих данных) нулями. Во время оценки мы удалили эти заполненные значения, чтобы модель не оценивалась по заполненным значениям.

Ниже мы видим, что результаты AR-LSTM улучшаются по мере увеличения количества продуктов. Можно интуитивно подумать, что модель, обученная с большим количеством продуктов, работает лучше, потому что большую часть времени она предсказывает гораздо более низкие значения. Однако гистограммы прогнозов и истинных значений показывают, что распределение прогнозов в целом совпадает друг с другом. Вместо этого он также показывает, что модель не предсказывает значения, близкие к нулю, так часто, как должна. Потенциально это связано с тем, что функция потерь представляет собой среднеквадратичную ошибку, а более низкие потери не наказываются так сильно, как более высокие потери.

Сводка результатов для отдельных моделей

Эффективность отдельных моделей при прогнозировании 100 лучших продуктов и 3000 лучших продуктов представлена ​​в таблицах ниже.

Как правило, улучшение наших моделей по сравнению с эталоном является более скромным при оценке 100 лучших продуктов по сравнению с 3000 лучших продуктов. Одним из объяснений может быть то, что модели имеют больше данных и продуктов для обучения, поэтому лучше переносить обучение между продуктами и брендами. Кроме того, еще одним способствующим фактором может быть тот факт, что эти продукты с большим объемом продаж в топ-100 имеют более стабильные продажи, чем продукты с меньшим объемом, поэтому 28-дневная скользящая средняя является довольно хорошим предсказателем будущего спроса на эти продукты и, следовательно, эталоном. предсказание труднее улучшить. Действительно, MAE для эталона 100 лучших продуктов намного ниже, чем у 3000 лучших продуктов, а это означает, что эталонный тест является лучшим предсказателем для 100 лучших продуктов по сравнению с 3000 лучших продуктов.

Обратите внимание, что ячейки, выделенные светло-зеленым цветом в таблицах ниже, представляют самый низкий (т. е. лучший) MAE за конкретную неделю. Прогнозы отдельных моделей будут переданы в модель ансамбля на следующем этапе, чтобы объединить сильные стороны наших различных моделей.

Модель ансамбля

Последний шаг в нашем подходе — это способ объединить сильные стороны наших разных моделей. На данный момент у нас есть 4 разные модели, производящие 4 разных прогноза на каждом временном шаге, и мы хотим иметь единый подход для объединения различных прогнозов. Наличие ансамблевого подхода к обучению позволило бы нам иметь централизованный API для предварительной обработки, обучения и тонкой настройки. Более того, поскольку некоторые модели более сильны в переносе обучения между временными рядами, чем другие — мы можем видеть это при сравнении производительности 100 лучших продуктов и производительности 3000 лучших продуктов в разных моделях — объединение различных моделей будет полезным.

Мы хотим, чтобы модель ансамбля могла сузить круг ситуаций, в которых одна модель будет лучше другой. Поэтому мы хотим, чтобы «взвешивание» различных моделей было динамическим.

Переход с нединамической модели агрегации на динамическую модель агрегации:

Следовательно, первым шагом будет обучение метамодели различным прогнозам моделей уровня 0 (т. е. «Агрегированных моделей», описанных ниже) и добавление некоторых метафункций, чтобы предоставить некоторую метаинформацию о текущей точке, в которой мы находимся. прогнозирования (подробное описание этого подхода см. в статье Линейное суммирование с учетом взвешенных признаков, Силл и др.).

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

Мета-функции. Мета-функции, которые мы используем, называются «мета», потому что мы не хотим, чтобы они содержали какую-либо количественную информацию, например, чтобы они состояли только из информации о текущем сезоне, году, информации о продукты и продавцы. Используя эти мета-функции, мы ожидаем, что классификатор Random Forest (RF) сможет улавливать различные модели.

Агрегированные модели. Мы используем прогнозы следующих моделей: Tuned XGBoost, AR-LSTM, LSTM, CNN LSTM и Benchmark.

Процедура обучения. На этом этапе мы разрабатываем разделение обучения и проверки 01.03.2021 и разделение проверки и тестирования 01.05.2021. Мы разрабатываем две разные процедуры обучения: одну для неонлайн-обучения (nOT) и одну для онлайн-обучения (OT).

  • Обучение не в сети. Модели уровня 0 сначала обучаются на обучающем наборе, а затем выполняются прогнозы на проверочном наборе. Затем мы переобучили их на обучении + проверке и сделали прогноз на тестовом наборе. Затем метамодель была обучена на проверочном наборе и протестирована на тестовом наборе.
  • Онлайн-обучение. Модели уровня 0 сначала обучаются на обучающем наборе, а затем выполняются прогнозы на проверочном наборе. Затем мы переобучили тех, кто прошел обучение + валидацию. Метамодель была обучена на проверочном наборе. Затем все модели уровня 0 выполняют онлайн-обучение на тестовом наборе, а метамодель выполняет онлайн-обучение поверх различных моделей уровня 0.

Процедура настройки:

  • Исследование абляции: чтобы метамодель обучалась только на «сильных» моделях, мы проводим исследование абляции, чтобы выбрать только прогнозы из моделей, которые вносят вклад значительно снизить общую MAE при прогнозировании от 1 недели до 8 недель для всего набора тестов. Эта процедура была запущена на проверочном наборе, который мы разделили на две части (и дополнили обучающую часть данными из обучающего набора).
  • Встроенная настройка гиперпараметров (HP):Каждое обучение модели случайного лесного классификатора использовало настройку гиперпараметров по 4 критическим гиперпараметрам: количество деревьев, максимальная глубина выращенных деревьев. , минимальное количество точек для разделения узла и минимальное количество точек в листе. Процедура настройки гиперпараметров использует байесовскую оптимизацию (BO) для ускорения процесса и более эффективного поиска в пространстве параметров.

Модель ансамбля: 100 лучших продуктов

  • Исследование абляции. Из 160 000 комбинаций мы могли попробовать примерно 40 000 комбинаций и выбрать оптимальное подмножество предикторов. Были выбраны такие функции, как прогнозирование_XGBoost, прогнозирование_CNNLSTM, имя_вендора_закодировано, время с момента запуска бренда, эталонный тест и некоторые другие функции времени. Этот шаг помог значительно снизить MAE.
  • Встроенная настройка гиперпараметров. Алгоритм байесовской оптимизации исследовал нижние пределы вставленных диапазонов max_depth и min_sample_split. Количество деревьев — это заданный нами дискретный набор значений.

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

Модель ансамбля: 3000 лучших продуктов

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

Здесь следует отметить, что модель ансамбля по умолчанию (не прошедшая онлайн-обучение) для 3000 лучших продуктов превосходит настроенную модель (не прошедшую онлайн-обучение) для 100 лучших продуктов. Для модели из 100 лучших продуктов исследование абляции с настройкой Embedded HP значительно повысило производительность классификатора. Таким образом, мы уверены, что правильная настройка модели Ensemble на 3000 лучших продуктов даст лучшие результаты.

Интерпретация ансамблевой модели:Как уже говорилось ранее, мы намеренно используем неинтерпретируемую модель, чтобы прогнозы зависели от значений всех функций. Однако модель случайного леса не использует интерпретируемые механизмы. Поэтому мы использовали модель SHAP, Унифицированный подход к интерпретации предсказаний модели, Lundberg et. и др., чтобы понять, какие функции использовались при выполнении прогнозов. Здесь мы использовали модель SHAP в модели ансамбля для 100 лучших продуктов, исследования после абляции и настройки гиперпараметров после.

Интуиция, стоящая за значениями SHAP, заключается в том, что, учитывая экземпляр x для прогнозирования, мы обучаем локальную линейную модель для аппроксимации выходных данных нашей (черный ящик, здесь Random Forest) модели:

График на рис. 25 представляет собой совокупность всех значений SHAP в обучающей выборке, где различные функции ранжированы по важности функций (см. определение важности функций у Lundberg et. al.). Из этого рисунка можно сделать несколько выводов:

  1. Наиболее важной особенностью Random Forest является эталон. Это соответствует нашей интуиции: хотя мы построили разные модели для прогнозирования будущей стоимости, эталонная модель будет постоянно «давать» результаты, которые довольно близки к фактической стоимости.
  2. Прогнозы CNN-LSTM используются чаще, чем прогнозы XGboost. Это показывает, что в этих условиях CNN-LSTM может более эффективно реагировать на спрос в 100 лучших продуктах.
  3. Закодированное имя поставщика имеет высокую важность функции, а это означает, что при удалении производительность значительно снизится. Это подтверждает наш первоначальный вывод о том, что модель случайного леса имеет более высокую производительность, чем другие модели, потому что она понимает сильные стороны моделей для разных продуктов и брендов.
  4. Различные реализованные модели правильно уловили тенденцию: когда их значение было низким, их значение Шепли было отрицательным. Это означает, что когда результат модели низок по сравнению со средним значением, влияние ее прогноза на разрыв y(x,t)-y отрицательно; что будет иметь тенденцию к снижению стоимости выпуска.

Будущая работа

После завершения нашего проекта, следующие шаги для нашего проекта включают следующее.

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

Кроме того, специально для Ensemble Model мы провели всестороннее исследование абляции и настройку гиперпараметров для 100 лучших продуктов. На следующем этапе проекта мы можем расширить его до 3000 лучших продуктов, а затем и до всего набора продуктов. Это, вероятно, позволит нам добиться выдающейся производительности в более широком наборе продуктов.

Ссылки

С. Рен, Т. Чой и Н. Лю, «Прогнозирование продаж модной одежды с помощью модели фильтра частиц на основе панельных данных», в IEEE Transactions on Systems, Man и Cybernetics: Systems, vol. 45, нет. 3, стр. 411–421, март 2015 г., doi: 10.1109/TSMC.2014.2342194.

Р. Ганбари и К. Борна, «Многомерное прогнозирование временных рядов с использованием нейронных сетей LSTM», 26-я Международная компьютерная конференция, 2021 г., Компьютерное общество Ирана (CSICC), 2021 г., стр. 1–5, doi: 10.1109 / CSICC52343.2021.9420543.

Ю. Ван и Ю. Го, «Метод прогнозирования волатильности фондового рынка по данным временных рядов на основе смешанной модели ARIMA и XGBoost», в China Communications, vol. 17, нет. 3, стр. 205–221, март 2020 г., doi: 10.23919/JCC.2020.03.017.

Дж. Силл, Г. Такач, Л. Макки и Д. Лин, «Линейное суммирование с учетом признаков», на arXiv.org, ноябрь 2019 г., arXiv: 0911.0460

С. Лундберг, С. Ли, «Единый подход к интерпретации модельных прогнозов», на arXiv.org, ноябрь 2017 г., arXiv: 1705.07874