当前位置: 首页 > news >正文

供应链算法整理(一)--- 销量预估

        在供应链管理领域有较多的预估场景,例如送达时长预估、销量预估、用电量预估。特别的在智能供应链领域,销量和库存的管理的智能化也依赖销量预估,因此在本文我们整理了 销量预估的算法详细的技术方案。

        时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练。Makridakis M-Competitions系列(分别称为M4和M5)分别在2018年和2020年举办(M6也在今年举办了)。2018年M4的结果表明,纯粹的“ ML”方法在很大程度上胜过传统的统计方法,这在当时是出乎意料的。在两年后的M5[1]中,最的高分是仅具有“ ML”方法。并且所有前50名基本上都是基于ML的(大部分是树型模型)。这场比赛看到了LightGBM(用于时间序列预测)以及Amazon's Deepar [2]和N-Beats [3]的首次亮相。N-Beats模型于2020年发布,并且优于M4比赛的获胜者3%!

        

一、背景

1.1 销量预估相关比赛

  •  1 Corporación Favorita Grocery Sales Forecasting
  •  2 天池新人实战赛o2o优惠券使用预测
  •  3 [竞赛] CCF2018-Top2-供应链预测

  •  4 [竞赛] CCF BDCI 2019乘用车细分市场销量预测

  •  5 JDATA如期而至-用户购买时间预测

  •  6 m5 foreasting
  •  7 其他kaggle比赛

1.2 销量预估相关论文

        GitHub - hushuguo/awesome-time-series-papers: This repository offers a collection of recent time series research papers, including forecasting, anomaly detection and so on , with links to code and resources.

二、销量预估算法的挑战

2.1 技术挑战 & 应对方案

技术挑战详细        应对方案
零膨胀同时分类商品销量为0的概率,和回归商品的销量
偏分布长尾数据剔除,对销量取log。减少数据右偏,把数据转化为类似正态分布
新商品模型里保留新商品信息,loss里做mask
商品替代多种算法预分组,引入商品类目、商品相似性
其他业务影响节假日引入出行节假日数据,品类和单品联合学习
营销活动营销活动异构图,提取营销活动信息
恶劣天气小时级天气,恶劣天气单独训练
季节变化

2.1.1 零膨胀

详细零膨胀是人们在社会科学、自然中的计数资料的实际研究中,观察事件发生数中含有大量的零值。

应对方案 同时分类商品销量为0的概率,和回归商品的销量

2.2.1 右偏分布

详细: 偏态分布是与“正态分布”相对,分布曲线左右不对称的数据次数分布,是连续随机变量概率分布的一种。 

应对方案: 长尾数据剔除,对销量取log

2.2.3 新商品

详细:有大量新商品上架,或者部分商品因为不在架导致商品销量为0

应对方案: 图模型里保留商品新老品信息。

2.2.4 商品替代性

详细: 部分商品有同款不同规格,另外一些商品相近。    

应对方案: 

2.2.5 其他业务影响

节假日

详细:     

应对方案: 

营销活动

详细:     

应对方案: 

恶劣天气

详细:     

应对方案: 

季节变化

三、销量预估算法的技术方案

3.1 时序模型

        Arima模型:

示例代码:

import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.stattools import adfuller
from sklearn.metrics import mean_absolute_error

# 1. 加载数据
data = pd.read_csv('sales_data.csv', parse_dates=['date'], index_col='date')

# 2. 检查平稳性
result = adfuller(data['sales'])
print(f'ADF p-value: {result[1]:.3f}')  # p<0.05则平稳

# 3. 差分(若未平稳)
data['sales_diff'] = data['sales'].diff().dropna()

# 4. 确定ARIMA参数
plot_acf(data['sales_diff'].dropna(), lags=20)  # 观察q值
plot_pacf(data['sales_diff'].dropna(), lags=20) # 观察p值
plt.show()

# 5. 训练模型
model = ARIMA(data['sales'], order=(2, 1, 2))  # 根据ACF/PACF调整参数
results = model.fit()
print(results.summary())

# 6. 预测未来7天
forecast = results.get_forecast(steps=7)
forecast_mean = forecast.predicted_mean
forecast_ci = forecast.conf_int()

# 7. 可视化
data['sales'].plot(figsize=(12, 5), label='Observed')
forecast_mean.plot(label='Forecast', color='red')
plt.fill_between(forecast_ci.index, forecast_ci.iloc[:, 0], forecast_ci.iloc[:, 1], color='pink', alpha=0.3)
plt.title('ARIMA Sales Forecast')
plt.legend()
plt.show()

3.2 机器学习模型

3.2.1 特征

3.2.2 模型

树模型:

        Light GBM、XGB
 

深度序列模型:

        TFT(google https://arxiv.org/pdf/1912.09363v1)

        DeepAR (Amazon)

3.3 新品长尾模型

3.4 路由模型

时间序列模型-Temporal Fusion Transformer - tinstone - 博客园

揭秘盒马销量预测核心算法的技术演进_数据_业务_销售

​盒马供应链算法实战

阿里智慧供应链实践:从“数字孪生”到“智能决策”

预测:方法与实践(第三版)

Forecasting: Principles and Practice

智慧供应链的学习笔记(库存管理、配补货、仓间调拨、控制塔等)-CSDN博客

时间序列算法应用案例、工具库学习笔记-CSDN博客

时序论文36|如何在充分利用时间戳信息?

A comprehensive survey of deep learning for time series forecasting: architectural diversity and open challenges | Artificial Intelligence Review

5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型(附代码)

活动、节假日、促销等营销方式的因果效应评估——特征工程篇(一)_corporación favorita grocery sales forecasting论文-CSDN博客

5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型

时间序列预测 —— DeepAR 模型-CSDN博客

使用 Temporal Fusion Transformer 进行时间序列预测

时间序列算法应用案例、工具库学习笔记-CSDN博客

相关文章:

  • 如何掌握 Lustre/Scade 同步数据流语言
  • 基于建造者模式的信号量与理解建造者模式
  • 每日算法-250502
  • Python爬虫实战:获取好大夫在线各专业全国医院排行榜数据并分析,为患者就医做参考
  • 传统银行服务和 区块链支付无缝融合的一种解决方案
  • 【AI面试准备】数据治理与GDPR脱敏机制构建
  • 4.Java中的注释
  • VBA宏即根据第一列的内容和第二列的数字,按照数字数量生成对应内容并依次放在第三列、第四列等
  • c++环境和vscode常用的一些有用插件
  • Qt C++简单图形界面与绘图实验
  • 开闭原则与依赖倒置原则区别:原类不变,新增类(功能)vs 接口类不变,原实现类可变
  • 算法篇(九)【滑动窗口】
  • 《筑牢防线:全方位守护移动应用免受逆向侵扰》
  • linux下如何在一个录目中将一个文件复制到另一个录目,删除目录
  • A2A 协议与 MCP 协议:智能代理生态系统的双轮驱动
  • 组件通信-自定义事件
  • Dify 安装 使用
  • STM32 ZIBEE DL-20 无线串口模块
  • Linux Netlink机制:现代网络通信的核心
  • C++ set和map
  • 美国鞋类巨头请求白宫豁免关税,称已构成“生存威胁”
  • 中青报:“爸妈替我在线相亲”,助力还是越界?
  • 德雷克海峡发生6.4级地震,震源深度10千米
  • 旭辉控股集团:去年收入477.89亿元,长远计划逐步向轻资产业务模式转型
  • 宿州市委副书记任东已任市政府党组书记
  • 三家“券商系”公募同日变更掌门人,新董事长均为公司股东方老将