机器学习在需求预测中的应用与实践
1. 主要学习算法类型
1.1 决策树相关算法
决策树算法有着丰富的发展历程。1963年,Morgan和Sonquist发布了首个决策树算法。后续在此基础上发展出了多种相关算法:
-
自适应提升(Adaptive Boosting)
:将简单树提升为复杂模型。
-
极度随机树(Extremely Random Trees)
:对森林进行进一步随机化。
-
梯度提升(Gradient Boosting)
:使用梯度下降来提升树。
-
轻梯度提升(Light Grad. Boost)
:利用数据聚类使梯度提升更快。
-
极端梯度提升(Extreme Grad. Boost)
:实现更快更智能的梯度提升。
森林算法也广为人知,它通过对数百个独立树的预测结果取平均值来进行预测。该技术使用起来比一些较新的提升方法更简单,通常能取得不错的效果。
1.2 神经网络
1.2.1 神经元与激活函数
人工神经网络由神经元组成,神经元是接收来自各种输入的数值信息的数学单元。每个神经元会为每个输入分配不同的权重,然后应用激活函数来处理这些输入并生成数值输出。激活函数通常类似于有上限的加权和,选择合适的激活函数至关重要,因为它决定了神经元的行为。
1.2.2 神经网络的结构
神经网络由输入层、多个隐藏层和输出层组成,数据从一层流向另一层,这被称为前向传播:
-
输入层
:将输入特征传递给第一个隐藏层。
-
隐藏层
:是神经网络的核心,通过使用激活函数和权重处理输入来获取洞察。
-
输出层
:每个神经元对应一个预测结果。
1.2.3 神经网络的发展历程
- 20世纪40年代,McCulloch和Pitts对有机神经元的生物工作原理进行建模,展示了简单单元如何复制逻辑功能。
- 20世纪50年代,Rosenblatt创建了感知机,这是一个包含单层神经元的大型设备,可对数字的基本图片进行分类并自动训练。但由于其训练算法的限制,感知机只能处理单层神经元,无法捕捉复杂关系,导致了第一次神经网络寒冬。
- 20世纪80年代中期,反向传播算法被提出并推广,允许训练具有多层神经元的神经网络,但仅靠反向传播算法不足以有效高效地训练深度网络,再次导致研究界对神经网络失去兴趣。
- 2000年代后期,多种新算法(如Adam优化方法和ReLu激活函数)被推广,实现了更快、更稳定的优化,使得训练更深的神经网络成为可能。
2. 机器学习驱动的需求预测期望
2.1 预测竞赛
国际预测界每年都会组织竞赛,其中一些专门关注零售需求预测。自2018年以来,有三场专门针对零售需求预测的竞赛:
| 竞赛名称 | 年份 | 粒度 | 预测项目数量 | 预测 horizon | 数据情况 |
| — | — | — | — | — | — |
| Corporacion Favorita | 2018 | 商店x产品x天 | 210,000 | 16天 | 4.5年的销售、价格范围和促销数据 |
| M5(Walmart) | 2020 | 商店x产品x天 | 42,840 | 42天 | 4年的销售和定价数据 |
| Intermarché | 2021 | 商店x产品x天 | 275,781 | 90天 | 1年的销售和价格范围数据 |
这些竞赛均由机器学习模型获胜,所有顶级参与者都使用了机器学习驱动的模型。但由于各竞赛跟踪的准确性指标不同且使用了不同的基准,难以直接比较其附加值。不过,从各竞赛的结果来看,先进模型能带来一定的预测误差降低:
| 竞赛名称 | 年份 | 指标 | 基准模型 | 基准得分 | 获胜模型得分 | 改进幅度 |
| — | — | — | — | — | — | — |
| Corporación Favorita | 2018 | 归一化加权均方根对数误差(NWRMSLE) | 季节性朴素模型 | 0.8486 | 0.5092 | 60.0% |
| M5 | 2020 | 加权均方根缩放误差(WRMSSE) | 指数平滑模型 | 0.6710 | 0.5204 | 22.4% |
| Intermarché | 2021 | 均方根对数误差(RMSLE) | 季节性移动平均模型 | 0.6088 | 0.5478 | 10.0% |
根据经验,通常机器学习项目与移动平均法相比,能将预测误差降低0% - 33%。随着更多数据(如历史短缺、促销和定价)的可用,准确性提升会更显著,仅促销一项就可能带来高达15%的提升。机器学习在预测粒度需求方面通常也表现更好。
2.2 改进基线
机器学习模型可能优于统计模型,但不一定能超越当前的整体预测过程。不过,使用先进模型可以提高预测基线的准确性,使需求规划团队能够专注于模型无法准确预测的产品(如新产品)或他们有特定洞察的产品。随着团队对机器学习生成的预测进行编辑,整体预测过程的准确性将得到提高,同时通常也会减少团队的工作量。
例如,假设当前预测引擎的误差为45%,团队通过工作可将其降低到41%。使用机器学习模型后,基线准确性可达到41%,团队进一步可将其提高到39%。具体数据如下表所示:
| 阶段 | 步骤 | MAE | FVA | Bias | FVA |
| — | — | — | — | — | — |
| 之前 | 基准 | 52% | -1% | | |
| | 基线模型 | 45% | +7 | -3% | -2 |
| | 需求规划人员 | 41% | +4 | 1% | +2 |
| 之后 | 基准 | 52% | -1% | | |
| | ML模型 | 41% | +11 | -2% | -1 |
| | 需求规划人员 | 39% | +2 | 1% | +1 |
3. 启动机器学习计划
3.1 模型创建框架
启动机器学习计划的路线图应基于5步模型创建框架,并将模型拟合步骤细分为特征选择和参数优化两个步骤:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(Metrics):::process --> B(Data):::process
B --> C(Objective):::process
C --> D(Review Process):::process
D --> E(Baseline Model):::process
E --> F(Visual Data Analysis):::process
F --> G(Error Analysis):::process
G --> H(Model Selection):::process
H --> I(Feature Selection):::process
I --> J(Parameter Optimization):::process
3.2 避免的陷阱
在启动机器学习计划时,需要注意以下四个陷阱:
-
测试设置
:评估模型预测质量的唯一正确方法是在未用于选择数据特征或优化参数的历史时期对其进行测试。应使用不同的数据集进行模型选择和评估,同时要将模型的准确性与简单基准、当前预测引擎和共识预测进行比较,且比较应在相同的时间段和粒度级别上进行。
-
目标与实际需求
:许多项目失败是因为数据科学家在未考虑实际业务需求(如预测粒度和范围)的情况下使用最新的时尚模型,可能还会跟踪不适当的指标或数据。在启动任何计划之前,应花时间设定正确的目标、收集正确的数据并使用正确的指标。
-
合理设定期望
:承诺过高会导致失望和终端用户的抵制,承诺过低则项目难以推进。机器学习相比基准可将预测误差降低0 - 30%,使用促销或定价等需求驱动因素可轻松超过15%的改进,但除非起始过程非常不成熟或某些需求驱动因素对需求有巨大影响,否则不应期望超过30%的预测误差降低。
-
无限可能性
:机器学习不是单一的整体方法,有数十种(甚至数百种)不同的模型,且每年都有新模型发布。每个模型都有不同的数据架构和参数设置方式,过去的机器学习计划失败并不意味着未来也不会成功。
4. 判断性预测
4.1 判断性预测的概念
预测引擎会生成预测基线,但不同团队仍可利用各种洞察和信息来源对预测进行丰富,这种基于人类判断的调整称为判断性预测。
4.2 何时使用判断性预测
一般来说,如果能利用预测模型未知的信息,使用判断性预测是个好主意。以下是一些好与不好的例子:
4.2.1 好的例子
- “我知道我的主要客户预计销售额会低于平时,我将降低预测。”因为模型不太可能直接与客户联系,所以这是合理的。
- “我将手动为这个新产品创建预测。”预测模型通常无法准确预测新产品的需求,这是需求规划人员的主要任务之一。
- “我们下个月将提高价格,我应该降低未来的预测。”如果预测模型未考虑价格因素,手动更新预测是个好主意。
- “我们预计下个月市场状况将发生巨大变化,我将更新预测。”模型不太可能知晓这种情况,因此审查预测是合理的。
4.2.2 不好的例子
- “我认为这个产品的趋势应该更高。”预测模型通常能自行捕捉趋势,如果没有更多信息,手动调整不一定能优于模型。
- “我认为这个产品的季节性应该不同。”预测模型应该能够正确捕捉季节性,如果有明显错误,应改进模型而不是手动逐个产品更正。
- “上个月有一个特殊事件,我需要手动更正历史需求。”手动编辑历史数据可能不安全,更好的做法是标记特定事件,让模型处理。
判断性预测也适用于缺乏历史数据或正在发生重大变化(如客户行为改变、新竞争、立法变化、全球大流行或战争等)的产品。最佳实践是仅在拥有模型未知的洞察时更新预测,这样可以确保团队专注于最有可能增加价值的产品,提高需求规划过程的效率和效果。
综上所述,机器学习在需求预测中具有巨大的潜力,但在应用过程中需要合理设置期望、遵循正确的方法,并结合判断性预测来提高整体预测的准确性和效率。
5. 机器学习在需求预测中的优势与挑战
5.1 优势
- 利用多源数据 :机器学习模型能够整合多种需求驱动因素,如促销活动、定价策略、历史销售数据等,从而提供前所未有的预测准确性。例如,在零售需求预测中,考虑到促销信息可以显著提升预测的精度。
- 减轻团队负担 :通过生成准确的预测基线,机器学习可以减少需求规划团队的工作量。团队可以将更多的精力集中在处理模型难以准确预测的特殊情况,如新产品的需求预测。
- 适应复杂情况 :对于具有复杂模式和关系的数据,机器学习模型能够更好地捕捉其中的规律。例如,在处理具有季节性、趋势性和随机性的销售数据时,神经网络等模型可以表现出较好的性能。
5.2 挑战
- 模型黑盒性 :许多机器学习模型,如神经网络,是黑盒模型,难以解释其决策过程。这使得在实际应用中,难以理解模型为何做出特定的预测,可能会影响用户对模型的信任。
- 数据质量要求高 :机器学习模型的性能高度依赖于数据的质量。如果数据存在缺失值、异常值或错误,可能会导致模型的预测结果不准确。因此,在应用机器学习之前,需要对数据进行仔细的清洗和预处理。
- 计算资源需求大 :一些复杂的机器学习模型,如深度神经网络,需要大量的计算资源进行训练和预测。这可能会对企业的硬件设施和计算能力提出较高的要求。
6. 实际应用案例分析
6.1 零售行业案例
某大型零售企业在引入机器学习模型进行需求预测后,取得了显著的效果。该企业使用了决策树和梯度提升算法,结合了历史销售数据、促销信息和价格数据等多源信息。通过与传统的统计模型进行对比,发现机器学习模型能够更准确地预测不同门店和产品的需求。在促销活动期间,预测误差降低了约20%,库存周转率提高了15%。
6.2 制造业案例
一家制造企业面临着产品需求波动大、预测困难的问题。该企业采用了神经网络模型,对生产数据、市场需求数据和供应链数据进行分析。经过一段时间的应用,模型成功地捕捉到了产品需求的季节性和趋势性变化,预测误差从原来的30%降低到了15%,有效地减少了库存积压和缺货现象。
7. 未来发展趋势
7.1 模型融合与创新
未来,不同类型的机器学习模型可能会进行融合,以发挥各自的优势。例如,将决策树和神经网络相结合,可能会产生更强大的预测模型。同时,新的算法和模型也将不断涌现,为需求预测提供更多的选择。
7.2 与其他技术的集成
机器学习将与物联网、大数据和云计算等技术更加紧密地集成。物联网设备可以实时收集更多的需求相关数据,大数据技术可以对海量数据进行存储和处理,云计算则提供了强大的计算能力支持。这些技术的结合将进一步提升需求预测的准确性和效率。
7.3 可解释性增强
随着机器学习的广泛应用,模型的可解释性变得越来越重要。未来的研究将致力于开发具有更好可解释性的机器学习模型,使得用户能够理解模型的决策过程,增强对模型的信任。
8. 总结与建议
8.1 总结
机器学习在需求预测中具有巨大的潜力,可以通过利用多源数据、减轻团队负担和适应复杂情况等优势,提高预测的准确性和效率。然而,也面临着模型黑盒性、数据质量要求高和计算资源需求大等挑战。在实际应用中,需要根据具体情况选择合适的模型和方法,并注意避免常见的陷阱。
8.2 建议
- 合理设定期望 :在引入机器学习进行需求预测时,要根据企业的实际情况和历史数据,合理设定期望值。不要期望过高,但也不要低估其潜力。
- 注重数据质量 :数据是机器学习的基础,要确保数据的准确性、完整性和一致性。建立完善的数据管理体系,对数据进行定期的清洗和更新。
- 加强团队协作 :需求预测不仅仅是数据科学家的工作,还需要需求规划团队、销售团队和其他相关部门的协作。各部门之间要加强沟通和信息共享,共同推动机器学习在需求预测中的应用。
- 持续学习与改进 :机器学习技术发展迅速,企业要鼓励员工持续学习和掌握新的知识和技能。同时,要不断对模型进行评估和改进,以适应不断变化的市场需求。
通过以上的分析和建议,希望能够帮助企业更好地应用机器学习进行需求预测,提高企业的竞争力和运营效率。在未来的发展中,机器学习将在需求预测领域发挥越来越重要的作用,为企业带来更多的价值。
超级会员免费看

被折叠的 条评论
为什么被折叠?



