Pull to refresh
5
3
Вильмов Андрей @KainoRhine

Программист(SQL, PHP, Python, ML), Аналитик данных

Send message

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

Мы прогнозируем временные ряды. И для прогноза используем сглаженные данные (так, как в данных есть аномалии, либо продажи которые более не повторяться). Да, мы сглаживаем не все, например есть всплески в продажах, которые вызваны рекламными акциями или открытием нового филиала, такие данные мы не сглаживаем и не убираем. Но по итогу, моделька прогнозирует кол-во отгрузок со склада, с точностью 91,8% (по самым ходовым товарам). Да, если вдруг придет сейчас продажа например на 30 000 единиц товара, то модель ее не спрогнозирует. Но такие КП бывают редко. Со всем остальным это алгоритм справляется. Например на прошлой неделе должно было уйти 2877 единиц товара, а ушло по факту 2836 единиц.

Да, про сезонность и тренд автор знает) + мы для прогнозирования используем логику: построения тренда и сезонности (через ариму/профет (тут для примера)), а потом загоняем эти данные в бустинг, который уточняет прогноз первой модели.

Да увидел
Там такая строка будет: r_mad = k * np.median(np.abs(y[(i - window_size):(i + window_size)] - r_median))

Да, совершенно верно. Однако, в тех данных с которыми работаем мы, продажи на очень большие суммы (либо на очень маленькие) являются выбросами.
Например, товар X в неделю в среднем отгружается на 150 т.р. а сегодня он ушёл со склада на сумму 1 500 000 рублей. Это явно выброс. Так как такие отгрузки, в силу специфичности бизнеса, очень редки.
Более подробно расскажу в статье, где мы на рабочих (реальных) данных будем строить модель прогнозирования продаж

Information

Rating
1,003-rd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Data Analyst, Database Developer
Lead
From 200,000 ₽
Git
SQL
Python
PostgreSQL
Docker
MySQL
MongoDB
Database
OOP
PHP