OneClick 增强预测操作手册

20分钟,分步掌握预测

入门教程

Step 1

 第一步:收集数据

下载样本数据

需求预测最基础的数据就是历史销售记录。只要提供日期、产品、销量这三个字段,就可以完成最基本的预测。实际操作中,我们建议把所有对销售有影响的信息都收集起来。这些信息虽然不是必须的,但是在某些业务模式下,对预测精度的提升起到有非常重要的作用。

我们准备了一个样本数据供大家参考

- 商超预测数据 预测接下来十周每周的销售额,从2012/10/26到2012/12/28)

历史销售数据

每个产品到天(或周,但不能大于预测本身的时间颗粒度,例如:历史销售记录的时间单位是月,用户不能指定预测未来每天的销量)、到门店的完整销售记录。日期应该是连续的,即使没有销售发生也应该产生相应的记录,只是销售量为 0 或空值。
1. 日期
2. 产品
3. 门店
4. 销售量(额)
5. 当天是否营业(如果当天未营业,销售量(额)应为0或空值)
6. 当天是否缺货(在断货的情况下需求可能高于实际销售量)
7. 当天是否数据丢失(如果当天销售数据丢失,销售量(额)应为0或空值)
8. 商品排面(在货架上占几排)。

门店信息

1. 开业日期
2. 关店日期
3. 门店地址信息(省、市、区)
4. 门店经纬度(用于获取气象信息)
5. 门店类别
6. 周边商业环境(商圈、目标客户类别、竞争对手)
7. 所属分公司

促销、价格、折扣信息

1. 日期
2. 分公司(或门店)
3. 产品(或产品类别)
4. 促销
5. 价格

产品信息

1. 产品
2. 类别
3. 品牌
4. 包装
5. 尺寸
6. 容量
7. 颜色
8. 材质
9. 市场定位
10. 其他文字描述信息

上述数据可以用几个独立的表格 供,或者是用一张合并在一起的大表供。表格文件建议使用 CSV 或 Excel 的格式。

Step 2

第二步:上传和预览数据,确保格式正确

可以选择直接上传数据或者使用提供的数据连接方式提供预测数据。

Step 3

第三步:指定数据的层次结构

为了方便后面对数据进行下钻或汇总,可以选择数据不同级别的关系。例如:省为第一级,市为第二级,门店为第三级,SKU为第四级。例子中门店类别为最高级,所以设定为第一级,门店为第二级,经营部门为第三级。

Step 4

第四步:设置预测任务

预测列:数据里面记录的销量或销售额(在该教程的例子中,为销售额)。
时间列:数据里表示时间或日期的一列,系统支持常见的日期格式如:“YYYY-MM-DD”,“MM/DD/YYYY”,“YYYYMM”等。准备数据时,请确保所有的日期都采用同一格式以免日期识别出现错误。
开始和结束日期:预测的开始和结束时间。(注意系统会包含结束时间,例如预测结束时间为2012-10-26,系统会对该日期也做出销量预测。如果您只希望预测某一个月的销量,可以选择该月同一个开始和结束日期)
预测频率:如果要预测的是月销量,预测范围选择1月;预测周销量,预测范围选择1周。
国家:销售产生的国家,以便系统自动处理节假日信息。通常销售受节假日影响很大,如果您的销售来源于多个国家,建议将数据分为不同的国家来产生预测以便系统更好的处理节假日。您可以创建不同的项目来预测不同国家的销量。
颗粒度:预测的颗粒度(例如,预测每个产品的销量,颗粒度可以选择产品;预测每个产品每个配送中心的销量,颗粒度可以选择产品和配送中心)。
排除列:如果数据中有不希望模型用到的列(例如,下载数据时数据库自动生成的数据记录ID等和销售没有任何联系的信息),用户可以选择在预测时候排除这些列。
评估指标:评价模型好坏的标准。我们推荐使用平均绝对值误差(MAE),这是因为这个精度对销量特别大的值不会特别敏感,同时也会考虑到小销量的产品。虽然大多数的供应链管理是用百分比误差,但百分比误差会关注预测销量小的产品,另外百分比误差如果真实销量为零是没有定义。对于MAE,RMSE,MAPE,VMAPE来说,值越小的模型越好。

高级设置

回测

        如果用户希望比较不同模型的表现同时又不希望等到拿到真实销量以后才比较模型预测和真实销量,可以使用历史销售数据进行回测。

        回测的开始日期-结束日期:回测开始日期到结束日期之间的时间应该至少和预测开始和结束日期一样长。例如预测未来十周的周销量,回测至少应该选择八周长度。(例子中是2012-07-13到2012-08-31这八周)

动态因子

        有些情况下,销售可能受到天气、促销等外部因素影响。如果可以提供未来的天气情况或促销计划,可以在销售预测的时候包含这些因子。注意:如果在选择模型的时候指定了动态因子,做未来预测之前需要先提供预测期间的外部因子,系统会使用这些动态因子来生成未来的销售预测。例如:如果用户指定是否安排促销活动为其中一个动态因子,那么需要提供指定的未来预测区间是否将要安排促销活动的信息。

Step 5

第五步: 选择模型

模型回测结束完成以后用户可以选择使用最好的模型进行滚动预测。系统会基于您所选择的模型评价标准推荐最优的模型。如果您认为模型已经达到要求,可以直接选择“部署模型“进入到模型部署页面。但如果您希望查看模型在不同时间、不同产品、门店上的表现,可以使用页面的四幅可视化图进行分析。

图一:不同模型在不同时间的准确率比较(准确率=1-百分比误差=1-预测与真实值的绝对值/真实值),如果您需要比较不同的门店,不同模型在某个具体时间的精度,选择不同的精度标准,可以使用每个可视化结果的设置界面(上图右侧菜单),可以调整x-轴,y-轴,可以选择不同的精度(目前提供的包括精度,预测偏差,加权精度,加权百分比误差)。如果您想查看某个门店的表现,或者去掉某些模型,可以添加筛选条件,例如选择门店29)

图二:不同模型在不同时间的预测偏差比较(预测偏差=(预测值-真实值)/真实值)。可以从图中直观的看出不同模型在不同时间是否过度预测(如果预测偏差为正)或者过低估计(如果预测偏差为负),表现较优的模型的预测偏差应该在各个预测点上的分布正负均衡(即系统没有低估或高估)。

图三:不同模型在不同时间的预测精度的热图,可以直观看出模型的表现。

图四:不同模型在不同时间的预测精度气泡图。其中x-轴为该日期总销量,y-轴为精度。表现较优的模型气泡整体分布应当居图中上方(位置越上代表精度越高)。用户可以选择以门店为单位绘制气泡图,每个气泡代表一个门店,可以直观比较模型是否在较大销量的门店有更佳表现。

Step 6

第六步: 部署模型

基于第四步所选择的最合适的模型,部署该模型进行滚动预测。如果您是做月度预测,选择每个月月初使用该模型预测;如果是按周,可以指定每周的周几使用该模型预测。一旦提交成功,模型在指定的时间会自动基于更新的销售预测生成新的一期的预测。例如我们的例子中,可以选择每周六进行预测,新的一期预测会生成2012-09-14到2012-11-02的八周预测。

在模型部署页面也可以查看每次滚动预测的状态,如果某次滚动预测失败,可以在该页面重新提交预测。

Step 7

第七步: 上传更新数据进行滚动预测

一旦部署模型并设置自动运行时间以后,模型在指定的时间会自动基于新的数据做出预测。因此,在模型运行之前,需要更新上一期历史销量。如果您选择的是使用MySQL,FTP等方式,可以自动更新这些文件或数据库内容。如果您选择的是通过上传文件的方式,需要在自动预测开始前通过上传新的文件来更新上期的历史销量。您可以选择只上传上一期的销售数据(在这个例子中,我们上传了2012-09-07号的销售数据),选择加到上一次的数据中。您也可以每次把历史数据和更新后的数据合并在一起,这样选择上传更新后的文件并覆盖之前的数据。


注意:

  1. 请不要将历史数据和更新后的合并数据添加到上一次的数据中以免产生数据重复,需选择覆盖。

2. 请务必保留历史数据,因为模型在进行滚动预测的时候需要使用这些历史数据。

Step 8

第八步: 查看预测仪表盘

滚动预测开始以后,系统会根据之前的预测以及真实销量生成预测仪表盘以便预测人员随时追踪精度的变化。用户可以改变图表的设置来查看不同门店、不同的时间的精度。我们也提供了预测年度至今的各种KPI和年度同期对比、不同类别销量对比等图表,方便用户查看、追踪销售指标。

Step 9

第九步: 检查历史预测表现

滚动预测开始以后,系统会基于已有的真实销量和模型做出的预测计算预测精度,预测偏差,预测成绩(forecast attainment)。用户可以选择需要查看的历史区间,以及需要检查的某个Lag预测。图中黑色分割线左边是历史的真实销量和模型预测的比较,黑色分割线右边是最新一期的预测销量。如果在filters里面只选取了部分产品或类别,图中的预测值和真实值都是被选中部分的序列或产品的总预测值和总销售值。

开始和结束日期:用户可以选中感兴趣的历史区间检查相应的模型预测和真实值对比。
频率:改变数据显示的颗粒度,如果是到天的数据,用户可以选择周度视图和月度视图,相应的柱状图代表一周或一个月的预测值和真实值对比。

视图:用户可以选中对比真实值和预测值,也可以查看不同的预测评价标准(精度,预测偏差,和预测成绩)。

预测方法:用户可以比较AI算法的精度,也可以查看AI算法加人工调整后的预测结果的表现。

预测提前期(Forecast Lag):用户可以改变预测提前期来查看不同预测提前期的精度(通常提前期越短,精度越高)。例如用户做月度预测,提前期为1意味着预测接下来这一个月的销量,提前期为2意味着预测接下来第二个月的销量。

用户可以通过改变右侧的Filters来快速筛选感兴趣的产品、类别、地区等查看模型表现。如图所示,选择了省“State”为(HH,BW,BY),门店“Store”为336的预测结果。每一个筛选条件系统同时给出了精度,预测偏差,预测成绩,方便用户快速根据不同标准来查看预测表现。


注意:

预测精度:100.0-(从开始日期到结束日期该类别的总销量-总预测值)*100 /总销量,

预测偏差:100*(从开始日期到结束日期该类别的总销量-总预测值)/总销量,

预测成绩:100*从开始日期到结束日期该类别的总销量/总预测。

例如:图中门店(“Store”)为336的条状图所对应精度100%=100%-(从2015-07-22到2015-07-30号该门店的总销量-从2015-07-22到2015-07-30该门店提前期为1的总预测)/(从2015-07-22到2015-07-30号该门店的总销量)。

Step 10

第十步: 检查历史预测变动

滚动预测开始以后,用户可以查看对同一时间两个不同预测版本的变化。理论上,我们希望不同预测提前期产生的预测越接近越好,当然提前期越短,预测准确性越高,所以不同的预测提前期产生的结果偏差是在所难免的,只要该偏差超过一定范围就可以接受(比如偏差没有超过准备的安全库存)。用户可以选择需要查看的历史区间,以及需要检查的两个版本的预测结果。

开始和结束日期:用户可以选中感兴趣的历史区间检查相应的模型预测和真实值对比。
频率:改变数据显示的颗粒度,如果是到天的数据,用户可以选择周度视图和月度视图,相应的柱状图代表一周或一个月的预测值和真实值对比。

视图:用户可以选中对预测改变的绝对数字或者相对的百分比改变(百分比改变=100.0*(第二次预测结果-第一次预测结果)/第一次预测结果)。

预测方法:用户可以比较AI算法的精度,也可以查看AI算法加人工调整后的预测结果的表现。

预测版本(Forecast Versions):用户需要从历史上的预测版本里面选择两个版本进行比较。如果两个版本之间没有交集,则会显示没有数据可以比较。这个时候用户需要重新选择其他两个版本的预测结果来比较。

用户可以通过改变右侧的Filters来快速筛选感兴趣的产品、类别、地区等查看模型表现。如图所示,选择了门店类别“Store_Type”为(medium)预测结果。


图中每一个柱状图代表该门店类别在每天的两个版本的总预测值。其中最上方柱状图表示两个版本的预测值比较,系统分别用了不同颜色和不同大小的柱状来表示;中间柱状图代表第二个预测结果相对第一个预测结果的改变;最下方柱状图代表累积的预测改变(具体计算方式:以该日期的第一个预测结果为基准,每一次新的预测产生以后,都计算和第一次的预测结果的差,然后将所有预测差值求和起来得到累积预测改变,例如对于2015-07-24总共有四次预测,第一次是100, 第二次是120, 第三次是130,第四次是80,则累积预测偏差为20+30-20=30)。

Step 11

第十一步: 检查、修改、下载预测结果

滚动预测完成以后,用户可以查看每个序列(例子中为每个门店)每一期(例子中为每周)的预测值。如果用户基于一些商业逻辑(例如预测低于之前的销售目标)需要调整所有序列或者某个序列的预测值,可以在相应的表格中进行修改。用户可以直接输入要修正的预测值或者输入要修正的百分比。另外用户也可以在图上拖动相应时间点的值来调整预测,如果改图下面有多个序列,调整值会平均按比例分配到各个序列上。如果用户对预测没有任何问题,可以直接点击“下载预测”得到新的一期预测结果。

Step 12

第十二步: 设置、查看预警

用户可以在该界面设置预警。例如一旦门店29的精度低于80%,生成预警并给预测人员发送邮件。用户可以定义预警名称,预警触发条件,以及预测重要程度,如果需要到某个序列或者门店,可以添加筛选条件。

预警生成后,会以表格形式呈现,用户可以点击该预警查看具体预警原因。如果某个门店或日期的预测触发了预警,系统会以红色高亮显示。

开始您的增强预测之旅

sharing-idea-PAGDGS7-orh4fn5mqbr2ifvzlpapig786zjxz19e9316u1thu0