老周在城南开了家小馆子,招牌菜是红烧肉。每晚打烊,他都要做一道算术题:明天到底备多少菜?备少了,客人失望而去,招牌蒙尘;备多了,菜烂在冰箱里,钱打了水漂。日复一日,老周养成了记账的习惯——哪天来多少人、点什么菜、下雨天生意如何,全记在本子上。靠着这些笔记和多年直觉,他总能估个八九不离十。老周的账本,其实就是一个最原始的需求预测系统;而供应链AI要做的,就是把老周的本子和直觉,升级成一个能自动看数据、算库存、下订单的“智能帮厨”。这篇文章将从需求预测的基本概念讲起,一步步拆解预测方法、补货决策、评估指标、系统架构和落地挑战,带你完整看懂一条供应链AI的“备菜流水线”。

岗位关联

对AI从业者而言,需求预测与补货优化是供应链AI中最成熟、最易产生直接经济效益的切入点。掌握这条完整链路,意味着你能把模型能力落地为真实的库存收益,是切入产业AI的高价值方向。

目录
  1. 可视化演示
  2. 需求预测基础
  3. 预测核心方法
  4. 补货优化原理
  5. 关键评估指标
  6. 端到端架构
  7. 落地挑战
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

演示供应链需求预测与补货优化:融合历史销量与外部特征预测需求,计算安全库存与再订货点,并优化多级补货决策。

本节配有交互动效(进入视口后自动加载,约 3KB)。

需求预测 历史销量+外部特征 Prophet/ARIMA建模 MAE=Σ|e|/n 预测未来需求作为库存决策依据

需求预测基础

老周开了一家小馆子,每晚打烊后都要做一道“算术题”:明天备多少菜。备多了,青菜烂在冰箱里;备少了,客人点单时只能尴尬地说“不好意思,卖完了”。他随身带着一个小本子,记下每天来了多少桌客人、点了什么菜——这个本子,就是最早的“需求预测系统”。预测这件事,供应链里每天都在发生,只是规模从一张餐桌放大到了全国仓库。

供应链里说的“需求预测”,本质就是老周写日记这件事:用过去发生的销售数据,推断未来一段时间客户会买多少。把每天、每周的销售量按时间顺序排成一列,就得到“时间序列”——它像一卷记录生意兴衰的胶片。胶片上通常叠加着三股力量:长期趋势、周期性季节、随机噪声。老周翻日记发现,客流逐年上涨是趋势,周末翻倍是季节,偶尔下雨生意冷清就是噪声。

预测前还要回答两个问题:预测谁的(粒度)和多远的未来(周期)。粒度可以是单品、门店、SKU 级别的日销量,也可以精细到小时;周期则从几天到数月不等。粒度越细、周期越长,噪声占比越高,难度越大。实践中常用“门店 + 品类 + 日粒度”作为起点,既保留决策需要的精度,又不会让模型被随机波动带偏。

老周把日记翻出来,发现可以用“平均客流 + 周末加成 + 随机波动”来估算明天的客流量——这就是最简单的分解预测。理解了这个结构,后面所有高级算法,本质上都是在更聪明地估算这三个成分。

Xt=Tt+St+Rt\displaystyle X_t = T_t + S_t + R_t
这条公式把一笔实际销量拆成三块:长期趋势、固定周期的季节波动、以及无法解释的随机噪声。理解它,就理解了所有预测算法的底层世界观。
  1. X_t 实际需求第 t 个时间单位(天、周或月)内真实发生的销售量,是预测要逼近的目标。
    Xt\displaystyle X_t
  2. T_t 趋势成分长期稳定方向的变化,比如老周的馆子口碑渐好、客流逐年上涨。
    Tt\displaystyle T_t
  3. S_t 季节成分以固定周期反复出现的波动,比如周末高峰、年末大促。
    St\displaystyle S_t
  4. R_t 随机成分无法解释的偶然波动,通常假设均值为 0,是预测难度的主要来源。
    Rt\displaystyle R_t

预测核心方法

老周最初的办法很朴素:看最近七天的客流,取个平均值当作明天的预估,这叫“移动平均”——它像用一块抹布在时间序列上滑动,抹平毛刺。后来他发现自己记性太好,总是不自觉地给上周五的客流更大的权重。这歪打正着,撞上了“指数平滑”的核心思想:越是近期的信息,越值得被信任。

指数平滑的递推只有一句话:当期平滑值 = 平滑系数 × 当期实际 + 剩余权重 × 上期平滑值。这里的 α 像老周的“记性开关”:α 越大,模型越健忘,越相信最新数据;α 越小,模型越沉稳,越依赖历史积累。它只有一个参数,却往往够用,因此成了工业界的常青树,尤其适合销量波动平稳的商品。

不过老周很快发现,光靠平滑不够——下雨、大促、节假日这些“外部特征”也会影响客流。于是他把特征(天气、促销力度、星期几、竞品动态)喂给机器学习模型,比如梯度提升树(XGBoost)。这类树模型能自动捕捉“下雨 + 周末 + 促销”这样的组合规律,不需要人工设计交互项,成为现代需求预测的主力模型。特征工程的质量,往往比模型选择更决定预测的上限。

如果说移动平均是只记得最近几天的“小徒弟”,那么树模型就是集齐了多年经验、还会看天气的“老师傅”。现实系统中两者常常组合使用:平滑法兜底保证稳定性,树模型捕捉复杂信号提升精度。

St=αXt+(1−α)St−1\displaystyle S_t = \alpha X_t + (1 - \alpha) S_{t-1}
指数平滑公式中,α 控制着“新信息”与“旧经验”的权重分配。它把一个无限长的历史序列,压缩成一个不断更新的数字。
  1. S_t 当期平滑值综合了当期实际与历史信息的估计值,也是下一期预测的直接来源。
    St\displaystyle S_t
  2. α 平滑系数取值在 0 到 1 之间,决定模型对最新数据的信任程度,α 越大越敏感。
    α\displaystyle \alpha
  3. X_t 当期实际最新观测到的真实需求,是校正预测误差的“最新情报”。
    Xt\displaystyle X_t
  4. S_{t-1} 上期平滑值浓缩了截至上一期的全部历史信息,是模型的“长期记忆”。
    St−1\displaystyle S_{t-1}

补货优化原理

预测出明天来 100 位客人,不代表老周就备 100 份菜。他还要回答“备多少、什么时候补”——这正是补货优化。冰箱空间有限,多备一份菜就要多付一份菜钱和冷藏费,这叫持有成本;少备一份可能得罪一个老主顾,这叫缺货成本。补货的全部艺术,就是在“怕浪费”和“怕缺货”之间找平衡点。

平衡点用一个数字来刻画,就是服务水平(service level):客户来买东西时有货可买的概率。95% 的服务水平意味着平均 100 次需求里,95 次能被现货满足。为了达到这个水平,老周需要在预期需求之上额外留一份“底气”——这就是安全库存。它好比冰箱深处那袋平时绝不碰的“救命食材”,专门应对供应商晚到、客流骤增这类意外。

安全库存的大小由三个要素决定:服务水平系数 z(95% 约对应 1.65)、需求波动 σ、采购提前期 L(从下单到到货的天数)。波动越大、提前期越长,不确定性累积得越多,安全库存就要越高。有了安全库存,再订货点 ROP = 提前期内的平均需求 + 安全库存;一旦库存跌破 ROP,立即触发补货,这就是最常用的连续盘点(s, S)订货策略。

这就好比老周在冰箱深处永远藏着一袋不会动用的“救命食材”:风平浪静时它静静躺着,供应商晚到两天或客流骤增时,它就是保证不熄火的底气。备少了心虚,备多了心疼——安全库存就是那个经过计算的“刚刚好”。

SS=z×σ×L\displaystyle SS = z \times \sigma \times \sqrt{L}
安全库存公式把“服务水平”翻译成“备多少货”。z 代表你对缺货的容忍度,σ 代表需求有多善变,√L 代表等待到货期间不确定性被放大的程度。
  1. z 服务水平系数由目标服务水平查正态分布表得到,95% 对应约 1.65,99% 对应约 2.33。
    z\displaystyle z
  2. σ 需求标准差衡量需求波动的幅度,波动越大,需要准备的缓冲越多。
    σ\displaystyle \sigma
  3. √L 提前期平方根提前期越长,不确定性按平方根累积,而不是线性累积。
    L\displaystyle \sqrt{L}
  4. SS 安全库存在平均需求之上额外持有的缓冲库存,是服务水平承诺的“物质基础”。
    SS\displaystyle SS

关键评估指标

每天晚上打烊,老周会在本子上写一行:预测 100,实际 110。日积月累,这本“错题本”就是评估预测模型好坏的依据。只看一两天没意义,要长期统计误差的大小和方向。供应链里的评估指标,本质上都是对这本错题本的量化总结。

最常用的指标是 MAE(平均绝对误差):把所有“预测值减实际值”的绝对值取平均,回答“平均每天猜错多少”。它直观、稳定,不怕个别极端值捣乱。RMSE(均方根误差)则先平方再开方,对大错误惩罚更狠——就像老周最怕的不是天天差 5 份,而是偶尔一次差 50 份。想要对比不同商品的预测水平,还会用 MAPE(平均绝对百分比误差),把误差归一化成“百分比”。

除了误差大小,更要看偏差(bias):如果预测长期偏高 10%,仓库就会越堆越满;长期偏低,则反复缺货伤客。供应链最终考核的是业务结果指标——缺货率(缺货次数占总需求次数的比例)和库存周转率(售出成本除以平均库存),模型分数再高,业务指标不改善就是白搭。

错题本不仅要记“错了多少”,还要记“错在哪个方向”。一个把误差压得很低但天天偏向高估的模型,就像天天备菜都多备三份的老周——看着稳当,实际上冰箱一直在悄悄浪费钱。

MAE=1n∑i=1n∣yi−y^i∣\displaystyle MAE = \frac{1}{n}\sum_{i=1}^{n}\left|y_i - \hat{y}_i\right|
MAE 的含义一句话:把每一期的“预测偏差”绝对值加起来求平均,得到一个像体温计一样直观的“平均错多少”的数字。
  1. y_i 实际值第 i 期真实发生的需求,是评判预测对错的“标准答案”。
    yi\displaystyle y_i
  2. ŷ_i 预测值模型对第 i 期给出的估计,来自平滑法或树模型的输出。
    y^i\displaystyle \hat{y}_i
  3. 绝对差|y_i − ŷ_i| 去掉正负方向,只保留误差的大小。
    ∣yi−y^i∣\displaystyle \left|y_i - \hat{y}_i\right|
  4. 求和取平均把 n 期的误差全部累加再除以 n,得到“平均每期猜错多少”。
    1n∑i=1n\displaystyle \frac{1}{n}\sum_{i=1}^{n}

端到端架构

老周的生意越做越大,日记本换成了收银系统,他还雇了个“智能帮厨”。这个帮厨每天自动读收银流水,整理每个菜的销量、天气、节假日信息,调用预测模型算出明天的需求,最后按补货规则生成采购单。老周清晨只需扫一眼采购单,签个字就行——这就是一套端到端的预测补货系统。

这套架构在大型供应链里有标准的四个环节。数据采集:从 POS、ERP、WMS 等系统收集销量、库存、订单数据,像帮厨从各处收拢食材。特征平台:把原始数据加工成模型能吃的“特征”,如历史销量均值、促销标记、星期几、天气。预测服务:把训练好的模型封装成接口,每日定时输出未来若干期的需求预测。决策引擎:把“预测 + 库存现状 + 服务水平”翻译成具体的补货建议,再对接采购系统自动下单。

模型层面,预测服务的核心是一个带参数的函数:输入是 t 时刻的特征向量,输出是下一期的需求期望。工程上优秀的系统不会只输出一个单点预测,而会输出 10%、50%、90% 三个分位数,对应“保守、中性、乐观”三档场景。决策引擎可以根据商品利润率和缺货成本,自由地在三者之间选择——高利润商品用乐观档备货,低值易耗品用保守档控库存。

老周不需要亲手翻账本、算算术,他只需要在每天清晨扫一眼采购单——人的精力被释放到真正的经营决策上。这也是一套成熟系统的价值:把“经验”沉淀成“服务”,把“拍脑袋”升级为“可复盘的流程”。

D^t+1=f(xt;θ)\displaystyle \hat{D}_{t+1} = f(\mathbf{x}_t; \theta)
这条公式是预测服务的“总开关”:把一大堆特征塞进一个函数,吐出下一个周期的需求预测。特征决定信息量,参数决定组合方式。
  1. D̂_{t+1} 下期预测模型输出的下一期需求期望,是补货决策的直接输入。
    D^t+1\displaystyle \hat{D}_{t+1}
  2. x_t 特征向量历史销量、促销、天气、星期等输入信号,像帮厨面前的各色食材。
    xt\displaystyle \mathbf{x}_t
  3. θ 模型参数训练得到的一组权重,决定每个特征对预测的影响力度。
    θ\displaystyle \theta
  4. f 映射函数从特征到预测的变换,可以是平滑法、树模型或神经网络。
    f\displaystyle f

落地挑战

系统上线第一个月,老周很满意;直到有一天市政修路,门口客流骤降一半,预测系统却还在按老节奏备菜。更糟的是,那天收银机坏了半天,订单记录缺了一段——模型把“假数据”当成了真规律。再聪明的帮厨,也怕“脏数据 + 环境突变”这对组合拳。

落地中最常见的问题有三类。数据质量:缺单、重复单、退单混入都会污染标签,必须做清洗、去重、异常剔除。冷启动:新菜品没有历史销量,预测无从下手,可以用相似品类的销量做参考,配合人工校准。需求突变:大促、疫情、政策变化让历史规律失效,模型需要监控“概念漂移”,引入外部信号提前预警,并定期重训。

监控模型最直接的办法是追踪预测偏差:把每期“预测减实际”的差平均起来。如果偏差连续几周显著偏离 0,说明规律变了,该重训了。同时,系统要保留“人工覆盖”接口——老周听说下周有大型展会,可以一键让系统把预测上调 20%。好的系统不是剥夺人的判断,而是把人的判断变成可执行的规则注入流水线。

再聪明的帮厨,也需要老周时不时敲打。AI 补货的终点不是“取代人”,而是“人机协同”:系统处理日常 80% 的常规决策,人类处理突发事件与策略调整。就像老周现在只在暴雨天、修路时亲自下指令——其余时间,他安心当甩手掌柜。

Bias=1n∑i=1n(y^i−yi)\displaystyle Bias = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)
偏差指标去掉绝对值,保留正负方向。正数说明系统性高估,负数说明系统性低估——它是监控模型“是否还活着”的心电图。
  1. 预测减实际每一期都算一次差值,正数代表高估,负数代表低估。
    y^i−yi\displaystyle \hat{y}_i - y_i
  2. 累加求和把方向相同的误差加总,正负抵消后留下“系统性倾向”。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  3. 除以 n 取平均得到一个平均偏差,持续偏大或偏小都说明模型已经失真。
    1n\displaystyle \frac{1}{n}

AI 应用场景

连锁便利店鲜食补货

阶段:需求感知与自动补货决策

解决的问题:鲜食保质期短,传统人工凭经验下单,经常出现“上午缺货、晚上报废”的双输局面。AI 用门店历史销量加上天气、节假日特征预测当日各品类需求,再结合安全库存与服务水平自动生成订货单,把人的经验变成可复制的算法。

具体案例:某连锁便利店品牌接入预测补货系统后,门店日废损率从 8% 降到 4%,缺货率下降 3 个百分点,总部采购人力减少一半,店长每天补货决策时间从半小时压缩到两分钟。

电商大促库存预置

阶段:峰值需求预测与仓网计划

解决的问题:大促期间需求呈脉冲式暴涨,备货不足会爆仓丢单,备货过多则大促后积压成灾。用树模型加入促销力度、浏览加购等前置信号预测各区域销量,并把货提前铺到离消费者最近的仓库。

具体案例:某电商平台在大促前用分位数预测输出“乐观 / 保守”两档补货计划,畅销 SKU 缺货率下降 40%,滞销库存占比下降 15%,仓间调拨成本显著降低。

制造业备件库存优化

阶段:慢动件需求预测与库存策略优化

解决的问题:设备备件一年卖不了几件,但缺货可能导致整条产线停机,损失以小时计。传统“凭感觉囤货”要么资金占用过高,要么关键时刻没货。AI 为每类备件单独估计需求波动,结合服务水平计算安全库存与再订货点。

具体案例:某装备制造企业用该方法将备件库存金额下降 18%,同时保证了 98% 的现货满足率,产线因缺备件停机的次数降为零。

Python 演示

python73 行
# -*- coding: utf-8 -*-"""需求预测与补货优化小示例 用指数平滑预测下一期需求, 再结合提前期与服务水平计算安全库存,最后模拟一段时间的补货过程, 观察库存是否跌破再订货点。"""import math SALES = [132, 141, 138, 156, 149, 163, 158, 171, 166, 178,         184, 175, 192, 188, 201, 195, 210, 206, 219, 224]ALPHA = 0.3LEAD_TIME = 3Z = 1.65      # 95% 服务水平对应系数ORDER_QTY = 180  def exp_smoothing(data, alpha):    """返回指数平滑后的序列, 最后一个值即下一期预测"""    series = []    level = data[0]    for value in data:        level = alpha * value + (1 - alpha) * level        series.append(level)    return series  def compute_metrics(data, alpha):    """计算一步预测误差的 MAD 与标准差估计"""    series = exp_smoothing(data, alpha)    errors = []    for t in range(1, len(data)):        errors.append(data[t] - series[t - 1])    mad = sum(abs(e) for e in errors) / len(errors)    sigma = 1.25 * mad    return series, mad, sigma  def run_simulation(data, alpha, lead_time, z, order_qty):    """预测 + 安全库存 + 补货模拟"""    series, mad, sigma = compute_metrics(data, alpha)    avg_daily = sum(data[-7:]) / 7.0    safety_stock = math.ceil(z * sigma * math.sqrt(lead_time))    reorder_point = math.ceil(avg_daily * lead_time) + safety_stock    inventory = reorder_point + 60    stock_list = []    order_times = []    for t, demand in enumerate(data):        if inventory <= reorder_point:            order_times.append(t)            inventory += order_qty        inventory -= demand        stock_list.append(inventory)    return {        "next_forecast": round(series[-1], 1),        "mad": round(mad, 2),        "safety_stock": safety_stock,        "reorder_point": reorder_point,        "final_stock": stock_list[-1],        "order_times": order_times,    }  def main():    result = run_simulation(SALES, ALPHA, LEAD_TIME, Z, ORDER_QTY)    print("下一期需求预测:", result["next_forecast"])    print("安全库存:", result["safety_stock"])    print("再订货点:", result["reorder_point"])    print("模拟期末库存:", result["final_stock"])    print("触发补货的期数:", result["order_times"])  if __name__ == "__main__":    main()
目的:用 20 期历史销量做指数平滑预测,算出安全库存与再订货点,再模拟一段补货过程看库存会不会跌破警戒线。
  1. level = alpha * value + (1 - alpha) * level指数平滑的核心递推式,α 控制新信息权重。
  2. errors.append(data[t] - series[t - 1])用上一步的平滑值做一步预测,记录与实际的误差。
  3. sigma = 1.25 * mad从平均绝对偏差估算标准差,这是工程上的常用近似。
  4. safety_stock = math.ceil(z * sigma * math.sqrt(lead_time))把安全库存公式落到代码里。
  5. reorder_point = math.ceil(avg_daily * lead_time) + safety_stock再订货点等于提前期需求加安全库存。
  6. if inventory <= reorder_point:库存跌破警戒线就触发补货,模拟老周的“救命食材”机制。
  7. inventory += order_qty下单后库存立刻回升,实际系统还要等提前期到货。
  8. if __name__ == "__main__":可执行入口,直接运行就能看到完整的预测补货报告。

常见误区

误区“模型必须把误差降到接近零才算合格,否则就是失败的。”

正解真实需求永远有噪声,误差为零反而意味着过拟合。关键是把误差控制在“业务可承受”的范围内——误差带来的缺货与积压成本,远大于继续优化模型付出的成本。老周不需要精确到第几位客人,他需要的是在“菜不够”和“菜扔掉”之间找到成本平衡点。

为何常见:人们习惯用考试思维看待模型,觉得分数越高越好,但供应链是成本优化问题,不是精度竞赛。

误区“反正怕缺货,多屯一点总没错,安全库存多多益善。”

正解安全库存是花钱买确定性。每多囤一件,就多一份资金占用、仓储和管理成本,生鲜还有损耗。公式 SS = zσ√L 告诉我们:服务水平从 95% 提到 99% 需要增加约 40% 的安全库存,而缺货风险只降 4 个百分点,边际收益递减得厉害。

为何常见:人天生有损失厌恶,对缺货的恐惧远大于对浪费的漠视,于是本能地选择“多备”。

误区“离线测试 RMSE 最低的模型,上线就一定最好。”

正解RMSE 只描述误差大小,不描述方向。一个预测长期偏高 15% 的模型,RMSE 可能很低,但会让仓库越堆越满。要同时监控偏差(bias)和分位数损失,甚至直接看缺货率、库存周转率这些业务指标做最终评选。

为何常见:误差指标直观又容易比较,大家默认“数字小就是好”,忽略了误差的结构性方向。

误区“AI 补货系统部署完,调参就结束了,坐享其成就行。”

正解需求分布永远在漂移:季节更替、竞品开店、疫情扰动、新政策出台,都会让旧模型失效。需要建立监控—告警—重训练闭环,定期用最新数据微调,并在偏差连续偏高时触发人工复核。

为何常见:用静态视角看待模型,以为训练完就是终态,忽略了真实世界永远在变化。

误区“只要把能拿到的数据全喂进去,模型自然更聪明。”

正解脏数据比少数据更危险。缺单、重复单、退单混入会污染标签;未经处理的促销期数据会把全体预测拉偏。数据要经过清洗、去重、异常剔除,并按业务口径对齐之后,再谈数量。

为何常见:平时用数据训练的直觉是“多多益善”,但工业数据的噪声远大于教材里的干净数据集。

面试题

Q1. 指数平滑法中的 α 越接近 1,预测结果会怎样?

单选题 · easy

  • A.曲线越平滑越稳定
  • B.越贴近近期实际值← 正确答案
  • C.完全等于历史均值
  • D.预测结果不受影响

答案:B。α 决定新信息的信任程度,α 越大,模型越看重当期实际值,预测曲线就越贴近近期波动;α 接近 0 才更平滑。这就像老周越“健忘”,越只信昨天的客流,菜量波动自然跟着放大。

Q2. 安全库存公式 SS = zσ√L 中,z 代表什么?

单选题 · mid

  • A.需求的标准差
  • B.服务水平对应系数← 正确答案
  • C.采购提前期的天数
  • D.预测模型的参数量

答案:B。z 是根据目标服务水平从正态分布查出的系数,95% 约 1.65,99% 约 2.33。它把“我多怕缺货”这个态度翻译成具体数字。σ 才是标准差,L 才是提前期,参数量则是模型的事。

Q3. 预测偏差(Bias)为大正数说明什么?

单选题 · mid

  • A.预测值系统性偏高← 正确答案
  • B.预测值系统性偏低
  • C.预测误差波动较大
  • D.预测结果完全准确

答案:A。偏差是预测值减实际值的平均,大正数说明模型长期高估需求。就像老周每天都多备三五份菜,误差看着不大,但冰箱里堆满了卖不掉的存货。波动大是方差问题,方向偏才是偏差问题。

Q4. 再订货点(ROP)主要由哪些部分构成?

单选题 · mid

  • A.前置期需求加安全库存← 正确答案
  • B.最大库存减去最小库存
  • C.平均库存加订货批量
  • D.缺货成本加上持有成本

答案:A。ROP = 提前期内平均需求 + 安全库存。前者保证到货前不会断供,后者应付波动。平均库存加订货批量描述的是库存水平,缺货成本与持有成本则是成本权衡的输入,都不是 ROP 的构成。

Q5. 服务水平 95% 的业务含义是什么?

单选题 · easy

  • A.库存周转率达到百分之九十五
  • B.需求被满足概率为百分之九十五← 正确答案
  • C.预测准确率达到百分之九十五
  • D.缺货成本低于百分之九十五

答案:B。服务水平定义的是“客户来了有货可买”的概率,平均 100 次需求里有 95 次能现货满足。它衡量的是补货策略,不是库存周转,也不是预测精度。老周的目标是让 95% 的客人不空手而归。

Q6. 时间序列分解 X_t = T_t + S_t + R_t 中“季节成分”的特点是?

单选题 · hard

  • A.长期缓慢的上升或下降趋势
  • B.固定周期内反复的波动模式← 正确答案
  • C.完全随机且无法解释的波动
  • D.由促销活动引发的永久抬升

答案:B。季节成分是在固定周期内反复出现的模式,比如周末高峰、年末大促,A 是趋势成分,C 是随机成分,D 更像是外部冲击。区分三者是选择预测方法的前提。

Q7. 以下哪些特征可用于需求预测建模?

多选题 · mid

  • A.历史销量与天气数据← 正确答案
  • B.节假日与促销计划← 正确答案
  • C.商品价格与竞品动态← 正确答案
  • D.供应商员工生日信息

答案:ABC。历史销量、天气、节假日、促销、价格都是影响需求的可观测信号,能帮模型捕捉“下雨 + 周末”这类组合规律。供应商员工生日与消费者需求没有因果关系,属于噪声特征。

Q8. 面对新品冷启动问题,可选方案有哪些?

多选题 · hard

  • A.用相似品类的销量作参考← 正确答案
  • B.直接放弃对该新品的预测
  • C.结合小样本人工校准预测← 正确答案
  • D.设定保守安全库存兜底← 正确答案

答案:ACD。冷启动的核心是“没有历史数据”,可以用类比迁移(相似品类)、人工经验校准、保守库存兜底三条路组合解决。直接放弃预测等于让新品裸奔,缺货或积压风险反而更高。

Q9. MAPE 指标的主要局限是什么?

单选题 · mid

  • A.对极低实际值过于敏感← 正确答案
  • B.无法衡量误差的大小
  • C.计算过程过于复杂繁琐
  • D.只能用于分类任务场景

答案:A。MAPE 把误差除以实际值,当实际销量接近零时,百分比会被放大到离谱。就像某天老周只卖了 2 份菜,误差 2 份就是 100% 的错误率,看起来很吓人,实则无伤大雅。

Q10. 需求突变场景下,如何提升补货系统的鲁棒性?

多选题 · hard

  • A.实时监控并动态调整参数← 正确答案
  • B.保留一定冗余产能储备← 正确答案
  • C.完全依赖单一历史模型
  • D.引入外部信号提前预警← 正确答案

答案:ABD。需求突变(大促、疫情、修路)会让历史规律失效。动态调参让系统快速适应新节奏,冗余储备给反应留出时间窗,外部信号(天气、政策、展会)则提供提前量。完全依赖单一历史模型正是最脆弱的选择。