利用类别和层次进行预测


首页 » 资源 » 此处

Lokad 的宗旨是提供尽可能准确的预测值。但在看待任何一种单一的产品时,往往没有充分的历史数据来计算这种产品的准确统计预测值。Lokad 通过广泛利用项目之间的相关性解决了这一问题,改进了预测值。但与此同时,根据需求历史记录来建立相关性同样会相当局限,因为历史记录太短或太稀疏。因此,Lokad 还运用了项目层次项目类别的概念来进一步提升预测值。在此页面,我们将详细介绍此类数据如何传递到 Lokad 预测引擎。

一般语法

类别和层次可以作为命名参数传递给预测引擎,如下面的语法所示:
Leadtime = forecast.leadtime(
category: C1, C2, C3, C4
hierarchy: H1, H2, H3, H4
// other arguments snipped
)
Demand = forecast.demand(
category: C1, C2, C3, C4
hierarchy: H1, H2, H3, H4
label: PlainText
// other arguments snipped
)   

categoryhierarchylabel 为可选参数,因此可以忽略。如若没有忽略,最多可以提供 4 个向量,但提供 1 个、2 个或者 3 个向量同样有效。

预测视角

从预测引擎的视角而言,类别和层次的作用非常相似:二者均有助于预测引擎处理稀疏的历史数据。实际上,对于任何给定项目 (1),历史观测值的数量也许极为有限,每年可能只有少数几个观测值。在这种情况下,基于给定项目有限历史数据的预测值可能准确度很低,原因就是估测受到的干扰太多。

(1) 项目一词可能是指产品、条码、SKU、部件等等,取决于所考量的具体商业情境。项目定义了预测方面的粒度。

Lokad 预测引擎广泛利用项目之间的相关性,由此解决了这一问题。不过,由于历史数据非常稀疏,因此很难只根据历史值建立关联。所以,Lokad 预测引擎也尝试利用项目之间在属性等方面的相关性。

在零售业中,这些属性通常通过 PIM(产品信息管理)系统进行收集。Lokad 作为一个 Web 应用,并不提供 PIM 功能,但是 Lokad 所处理的数据通常提取自 PIM。从预测角度来说,这些属性非常有趣,因为它们隐式嵌入了大量关于市场本身的信息,也即它们指向相关细分市场并且突出显示了项目之间的差异因素。

层次

层次用作所有项目的层次(树状)结构。Lokad 预测引擎支持最多 4 个层次。在存在多个层次的情况下,应按重要性递减的顺序传送至预测引擎,也即第一个参数表示最重要的层次。预测引擎不支持多个层次。

大部分企业已采用了层次来整理项目。这些层次可以命名为市场细分市场系列子系列等等,具体取决于公司内部的用语。举个例子,对于电子商务公司而言,产品层次通常可以在公司网站上使用导航菜单进行查看。

类别

类别用于存在预测相关性的项目的各种分类。类别的作用是从所售商品的横向属性(例如书籍的作者)方面对层次加以完善补充。与层次不同,类别之间不会共享任何特定关系;因此第一个类别的重要性不会比第二个类别高。

在实践中,类别可以用于反映项目相对多元化的属性,例如品牌、材料或颜色。另外也可以使用类别来做为表示次要层次的一种备用途径。预测引擎支持最多 4 种不同的类别属性。

纯文本标签

标签的作用是通过其纯文本描述对项目进行松散分类。预测引擎具有文本定时功能,可支持缺乏类别和层次的数据集。实际上,尽管手工创建的类别和层次对于预测准确度是可取的,但是这些信息并不总是可用,并且手动重新输入数以千计的项目也不切实际。

幸好 Lokad 预测引擎能够利用这些项目本身的纯文本描述。虽然对纯文本描述的大小没有严格的限制,但预测引擎针对20个字以内的描述进行了优化。根据经验,项目描述为一行时可以获得最佳结果。实际上,我们发现,通过高质量的纯文本描述,可以提高的准确度几乎与定义明确的类别和层次一样多。

关于市场的先验知识

通过层次和类别,预测引擎能够获得有关市场本身的先验知识。在我们的实验中,领域专家认为有洞见力的任何属性或特征,很可能预测引擎也会认为具有相关性。对于包含上百个项目的大型数据集,我们强烈建议至少包含两项属性,可以是两个层次或一个层次加一个类别。提供此类信息可以显著提高准确度。

另一方面,我们并不鼓励生成合成的类别或层次,此举容易让预测引擎误以为提供的数据与季节性、销量或销售不确定性等有关。如果可以根据历史数据本身计算属性,预测引擎会进行独立计算,无需任何额外的协助。