Вопрос или проблема
Я работаю над задачей прогнозирования продаж. Я могу предоставить алгоритму данные о том, какие товары были проданы, а какие нет.Как можно предоставить алгоритму информацию о товарах, которых нет в магазине? Есть ли способ закодировать эту информацию в данные или есть другие алгоритмы, которые принимают подобную информацию? В настоящее время я использую нейронные сети и случайные леса для прогнозирования продаж.
Если вы используете R, пакет forecast предоставляет алгоритм нейронных сетей в функции nnetar()
, и у него есть опция xreg
. Вы можете использовать данные о своем запасе в качестве регрессора. Примеры и детали: http://pkg.robjhyndman.com/forecast/reference/nnetar.html
Или вы можете использовать модели VAR, поскольку существует связь между запасами и продажами, например, если у вас низкий запас, ваши продажи будут min(y,stock)
, где y
— это истинный спрос на ваши продукты. Это также работает в другую сторону: если у вас высокий y
, то вы быстро исчерпаете запасы.
Но я рекомендую вам обратить внимание на функцию nnetar()
пакета forecast (в R).
Ответ или решение
Прогнозирование продаж невидимых товаров в магазине является сложной задачей, поскольку мы сталкиваемся с отсутствием данных о товарах, которые не были проданы. Однако, существует несколько подходов, которые могут помочь вам внедрить информацию о таких товарах в ваш алгоритм прогнозирования.
-
Кодирование отсутствующих товаров: Один из способов включить информацию о товарах, которые не присутствуют в магазине, – это использование кодирования. Вы можете создать переменные, которые будут указывать на наличие или отсутствие конкретных товаров на складе. Например, создать бинарные (0 или 1) признаки для каждого товара, где 1 обозначает, что товар доступен, а 0 – его отсутствие. Эти признаки можно добавить в ваш входной набор данных для моделей машинного обучения, таких как нейронные сети или случайный лес.
-
Использование данных о запасах: Как вы уже упоминали, можно использовать ваши данные о запасах как дополнительные регрессоры в вашем прогнозе. Это может повысить точность ваших моделей, так как они будут учитывать наличие товара в магазине. Например, в функции
nnetar()
в R вы можете использовать параметрxreg
, чтобы включить данные о запасах в качестве дополнительного регрессора. -
Взаимосвязь между запасами и спросом: Необходимо учитывать, что запасы и спрос взаимосвязаны. Существуют модели, такие как вектор авторегрессии (VAR), которые могут помочь вам учесть эту взаимосвязь. Вы можете задать правило, где ваши продажи ограничены текущими запасами, как в примере:
min(y, stock)
, гдеy
– это истинный спрос на продукт. Это поможет вам смоделировать ситуации, когда высокие уровни спроса приводят к быстрой распродаже товаров. -
Альтернативные алгоритмы: Рассмотрите возможность использования других методов, таких как градиентный бустинг (например, XGBoost или LightGBM), которые хорошо работают с разреженными данными и могут учитывать отсутствие данных о товарах. Эти модели могут также обрабатывать категориальные переменные, что может быть полезно для кодирования товарной информации.
-
Изучение и включение собственных данных: Если у вас есть возможность, соберите данные о продажах похожих товаров или историческими данными о товарах, которых не было в наличии. Это может помочь в построении более точной модели, даже если конкретные товары отсутствовали при сборе данных.
В результате, объединив информацию о товарных запасах, используя подходы к кодированию, модели, учитывающие взаимосвязь между записями и альтернативные алгоритмы, вы сможете улучшить точность своего прогнозирования и учесть невидимые товары в своих анализах.