了解预测引擎


首页 » 资源 » 此处

预测引擎是指 Lokad 中的一种负责核心预测分析的特殊组件。这种引擎是一种高级软件,可划入机器学习类别。此外,该引擎与传统预测工具箱截然不同,因为传统预测工具箱通常倾向于时序预测。在本文中,我们将说明该引擎的作用、与传统工具箱的不同之处,以及为什么这些差异在供应链领域对于提供可靠结果至关重要的原因。

完整预测与周期预测的比较

传统时序角度强调的是每日、每周或每月一次的周期预测。在这种情况下,历史数据表示为周期时序,预测值同样也表示为周期时序。尽管这种角度对某些领域(例如能耗预测或道路交通流量预测)可能合适,但我们发现,这种方法对于供应链优化表现欠佳。

周期预测并不切合供应链管理的基本事实:如果要考量的交付周期为 10 天,那么我们是否应当将每日预测值往前推 10 天再相加?还是将 1 周的预测值另外加上 3 天的每日预测值?根据经验,对预测值求和在统计上是极其不可取的:“对总和的预测不同于预测之和。”因此,如果交付周期为 10 天,那么预测工具的责任就是生成接下来 10 天的预测值,而不是生成有待重组为所需预测的中间预测值。

因此,Lokad 预测引擎不会生成每日、每周或每月预测,而是会直接计算匹配预期交付周期的需求预测值。此外,交付周期应当为自身的概率预测。这一行为乍看之下可能会有点令人不解,但遗憾的是,在几乎所有供应链情形中,任意预测值可以通过对周期预测值求和从而进行准确重组的想法只是“自以为是”的想法而已。

概率预测与平均数预测的比较

传统预测工具强调平均数预测,有时则强调中位数预测。但就供应链优化而言,商业成本存在极端情况。需求异常高时会发生缺货,同理,需求异常低时会出现库存积压。当需求与预测值大体一致时,库存水平会有小幅起伏。但总体上,供应链大部分是无摩擦的。通过使用“平均”预测值,也即平均数或中位数,传统工具会出现街灯效应,无论基本统计分析有多好,但并非第一正解。

相比之下,Lokad 预测引擎提供的是概率预测,即评估与未来每种情形 (1) 相关的概率。与平均数或中位数预测之类的单一值预测相比,这些概率能够针对未来提供更高粒度的洞察。借助概率预测,可以微调供应链风险和机会。更准确地说,对于每种可能的供应链决策,例如为指定的 SKU 额外购买一个库存单位,可以针对给定的未来需求水平来粗略计算财务财务后果 (2);进而只根据结合财务估算与概率得出的“加权”财务后果,来最终确定未来所有可能的决策 (3) 的优先级。

(1) 但在实际上,为保证计算切实可行,太低的概率将四舍五入为 0。因此,只会对有限的配置集进行真正的研究。

(2) 举个例子,假设我们现在购买 1 个单位,而未来的需求为 5 个单位(也就是说,我们会销售 5 个单位),并且周期结束时库存为 2 个单位。假定毛利润为 10,每个未售出单位每周期的持有成本为 15,那么净利润就是 5 x 10 – 2 x 15 = 20。

(3) 确定未来所有决策的优先级看似一件特别复杂的事,但 Lokad 的技术刚好专门用于解决这个问题。这种技术与预测引擎本身是不同的。

小数据集与综合数据模式

过去曾经用过预测工具箱的从业者可能倾向于根据几十个数据点的时序来测试 Lokad,从而了解个中的工作原理。此外,还可能倾向于检验 Lokad 对线性趋势或完美的季节性时序等简单模式的反应。测试结果可能会让从业者感到惊讶,因为我们的预测引擎在这些情况下的表现差强人意。但不巧的是,这种“差强人意”的行为对于获取满意的真实测试结果很有必要。

Lokad 预测引擎的主要规范之一就是提供准确的预测结果,同时又不要求进行任何手动统计微调。为了实现这一点,Lokad 利用数百个符合条件的真实数据集对预测引擎进行了预先调整。综合数据模式(例如理想的线性趋势或者理想的循环时序)与我们在现实数据集中看到的模式截然不同。因此,尽管此类综合数据模式看似直接,但我们甚至不会予以考虑。实际上,如果要以“真实”数据为代价才能提供“有利”的结果,那么以“虚假”的数据来提供“有利”的结果有何意义呢?我们的经验表明,一个出色的预测引擎在选择预测模式方面是非常保守的。仅仅为了小数据集取得成功的缘故而引入“完美拟合”的线性回归模式是极其不利的,因为这种模式可能会在不该使用的地方使用。

此外,为了彻底消除所有手动微调,我们的预测引擎高度依赖于机器学习算法。因此,预测引擎需要有相当大的数据集才能正常工作。实际上,预测引擎会对数据集执行许多统计测试,从而自行确定设置。但是,如果总数据集太小,预测引擎甚至都无法正确初始化本身。根据经验,要想获得有意义的结果,至少要对 100 个 SKU 采集 1000 个历史数据点。即便年营业额不足一百万欧元的小型电子商务企业,也会累积超过 10000 个数据点,这些数据点通常分布在超过 200 个 SKU 上。因此,预测引擎对数据的要求实际上很低,但并未低到预测引擎也适用于“小型”数据集的程度。

预测引擎对数据的要求

预测引擎对数据的最低要求如下:

  • 项目:最少 100 个,500 个为佳,最好 2000 个以上
  • 项目属性:最少 1 个,3 个为佳,最好 5 个以上
  • 过去的销售订单:最少 1000 个,10000 个为佳,最好 50000 个以上
  • 过去的采购订单,最少 50 个,500个为佳,最好 2000 个以上
  • 每月的历史记录深度:最少为 3,18 为佳,最好 36 以上

“项目”是指 SKU、产品、部件号、条码或用于预测的任何元素(取决于具体的商业情形)。

在预测交付周期时需要提供采购订单。尽管在初期也许可以忽略,但如果交付周期评估失准,可能会导致供应链遭受巨大破坏。因此,强烈建议尽可能提供此类数据。

提供缺货和促销历史记录有助于进一步丰富输入数据。实际上,Lokad 预测引擎还支持许多高级的数据场景。本节仅侧重于“必要”数据。

宏观预测与高频预测

Lokad 预测引擎适用于商业和制造业中的供应链情形。这些情形的特征为 SKU 为数众多并且需求不稳定。而这些情形正是 Lokad 预测引擎最能发挥作用的地方。但另一方面,也有其他一些预测类型不适合采用我们的技术。

宏观预测涉及到预测高度聚合的时序,这些时序通常很平滑(在进行周期性处理后)并且时间很长,这并非 Lokad 的所长。此类情形见诸于能耗预测、道路交通流量预测、现金流预测、来电流量预测等等。我们的预测引擎特别适合用于可以广泛利用项目之间相关性的多项目预测。

高频预测涉及到具有当天粒度的时序,这同样不是 Lokad 的处理范畴。这些情形包括大部分金融预测,其中包括商品和股票交易预测。个中的问题在于已有其他人使用了统计模式,因而会对未来产生影响。这种情况与供应链截然不同,在供应链中,需求预测仅对观测到的未来需求有适度的影响 (4)。

(4) 需求预测对需求毫无影响这种说法是不对的。举个例子,预测到某个商店某种产品的需求会提高,将提高这种产品的存在度,进而提高需求。但是,此类模式在供应链中趋向于边缘性情况。