AI+供应链应用教程:从零搭建需求预测演示环境
AI+供应链听起来像大厂专属,其实用一台普通电脑和开源工具就能跑通最小演示。
这篇教程面向零基础读者,带你从零搭建一个供应链需求预测环境,用示例数据训练模型并查看预测结果。
全程不需要GPU,也不需要真实企业数据,适合先理解流程再迁移到实际业务。
先确认你要解决什么问题
供应链里的AI应用很多,比如需求预测、库存优化、路径规划、供应商风险识别。
对零基础用户来说,最容易上手的切入点是需求预测:给定历史销量,预测未来一段时间的需求量。
本文的演示环境就围绕这个场景展开。
你需要准备:
- 一台能上网的电脑,Windows、macOS 或 Linux 均可
- 已安装 Python 3.8 或以上版本(在终端执行
python --version可查看) - 基本的命令行操作能力,会打开终端并切换目录即可
- 不需要提前准备真实数据,教程会生成一组模拟销量数据
如果你的电脑还没有 Python,建议先去官网下载安装包,安装时勾选“Add Python to PATH”(Windows)。
安装完成后重新打开终端,执行 python --version 确认能输出版本号。
搭建隔离的Python环境
为了避免和系统里其他Python项目冲突,先创建一个虚拟环境。
打开终端,进入你准备存放项目的目录,比如 D:\ai-supply-demo 或 ~/ai-supply-demo,然后执行:
python -m venv venv
创建完成后激活虚拟环境。
Windows 下执行:
venv\Scripts\activate
macOS 或 Linux 下执行:
source venv/bin/activate
激活后终端提示符前面会出现 (venv) 字样,表示当前命令都在这个隔离环境里运行。
下面安装演示需要的库:
pip install pandas prophet matplotlib
pandas 用来处理表格数据,prophet 是开源的时间序列预测工具,matplotlib 用来画图。
安装完成后,可以用 pip list 查看是否都出现在列表里。
避坑提示:如果安装 prophet 时报错,先升级 pip 再重试:python -m pip install --upgrade pip。
Windows 上如果遇到编译错误,可以尝试安装预编译版本,或者改用 pip install prophet --only-binary :all:。
生成示例销量数据并训练预测模型
在项目目录下新建一个文件 demand_forecast.py,用编辑器打开,写入以下代码:
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
# 生成90天的模拟日销量数据
dates = pd.date_range(start='2024-01-01', periods=90, freq='D')
import numpy as np
np.random.seed(42)
sales = 100 + np.arange(90) * 0.5 + np.random.normal(0, 10, 90)
df = pd.DataFrame({'ds': dates, 'y': sales})
# 训练模型
model = Prophet()
model.fit(df)
# 预测未来30天
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
# 输出预测结果的后5行
print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail())
# 画图保存
fig = model.plot(forecast)
fig.savefig('forecast.png')
print('预测图已保存为 forecast.png')
保存文件后,在终端执行:
python demand_forecast.py
如果一切正常,终端会打印出未来30天中最后5天的预测值,包括预测均值 yhat 和上下界 yhat_lower、yhat_upper,同时当前目录下会生成 forecast.png 图片。
打开图片,你能看到历史销量走势和预测曲线。
结果怎么看:yhat 是模型给出的预测值,yhat_lower 和 yhat_upper 是预测区间。
实际业务中,可以用预测区间来设置安全库存的上下限。
注意这是演示数据,真实场景需要替换成你自己的历史销量,并检查数据是否有缺失、异常值。
常见报错和排查方法
第一次跑代码容易遇到几个问题,下面按现象给出排查方向。
报错 ModuleNotFoundError: No module named 'prophet'
说明当前终端没有激活虚拟环境,或者安装时不在同一个环境里。先确认终端提示符是否有 (venv),没有就重新激活,再执行 pip install prophet。
报错 ValueError: Dataframe must have columns 'ds' and 'y'
Prophet 要求输入数据必须包含 ds(日期)和 y(数值)两列。检查你的 DataFrame 列名是否完全一致,大小写也要匹配。
运行后没有生成图片
可能是 matplotlib 后端在无图形界面的环境下无法显示。代码里已经用 savefig 保存文件,检查当前目录是否有 forecast.png。如果仍然没有,确认代码执行没有中途报错。
预测结果明显偏离历史趋势
演示数据是随机生成的,趋势和波动都有限。真实数据需要检查是否有促销、节假日、缺货等特殊事件,必要时在模型中加入额外回归项。Prophet 支持添加节假日和自定义回归变量,但需要额外准备数据,本文不展开。
从演示环境走向实际业务
跑通这个演示后,你已经完成了AI供应链应用的最小闭环:准备数据、训练模型、输出预测、查看结果。
实际业务中,还需要补充几件事:
- 数据清洗:处理缺失日期、异常销量、退货和促销记录
- 特征工程:加入价格、促销、节假日、天气等外部变量
- 模型评估:用历史数据做回测,对比预测值和实际值,计算误差指标
- 定期重训:随着新数据积累,定期更新模型,避免预测漂移
如果后续想把模型部署成接口供其他系统调用,可以学习 Flask 或 FastAPI,把预测逻辑封装成 HTTP 服务。
但建议先把本文的脚本跑稳,再逐步扩展。
关于环境清理和备份
演示完成后,如果不想保留虚拟环境,直接删除项目目录即可,不会影响系统 Python。
如果希望保留,建议把整个项目目录(包括 venv)打包备份,或者用 pip freeze > requirements.txt 导出依赖列表,方便在其他机器上重建环境。
最后提醒:本文所有命令和路径都基于通用环境,不同操作系统和 Python 版本可能有细微差异。
执行前先确认当前目录和虚拟环境状态,遇到报错优先回看上面的排查部分。
常见疑问
需要准备多少历史数据才能预测?
Prophet 官方建议至少有几个月的数据,演示中用90天是为了快速跑通。真实业务中数据越多,季节性规律越容易被捕捉,但也要注意过老的数据可能不再代表当前趋势。
预测结果可以直接用来下采购订单吗?
不建议。演示模型没有考虑库存、在途、供应商交期等约束,只能作为需求参考。实际下单需要结合库存策略和人工审核。
没有编程基础能学会吗?
本文的代码可以直接复制运行,不需要自己从头写。但建议边跑边理解每一行在做什么,遇到报错按排查部分处理,逐步积累。
除了 Prophet 还有哪些工具?
Python 生态里还有 statsmodels、scikit-learn 的时间序列模型,以及更复杂的深度学习框架。对零基础用户,Prophet 上手门槛较低,适合先建立完整流程概念。