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 上手门槛较低,适合先建立完整流程概念。

分享到:
上一篇
AI预算管理配置:从零搭建成本控制流程
下一篇
AI需求预测配置:从零搭建数据管道与模型参数
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意