第12章 负荷预测过程
前面章节已经讨论了开发和测试短期负荷预测的所有方面。这包括
如何分析数据以识别模式和关系。
如何识别、提取和选择特征以包含在预测模型中。
• 如何分割数据用于训练、验证和测试。
不同预测类型及其特点。
• 适用于点预测和概率预测的流行统计与机器学习模型。
• 如何选择误差度量和评分来评估预测精度。
然而,实际生成预测需要哪些步骤?第12.1节讨论了开发预测实验的一般步骤,第12.2节提供了从第9–11章介绍的众多预测模型中做出选择的部分准则。
12.1 预测开发的核心步骤
以下是为选定应用开发预测模型的主要步骤。它们按大致应用顺序列出,但根据具体情况,许多步骤可以重复或忽略。例如,如果新数据可用,可能需要进一步的数据分析,或者初始模型揭示了需要核实的其他关系。当寻求完善预测时可以重复该过程,但理想情况下,这应仅用尚未见过或使用过的数据进行测试,以确保实验中不引入任何偏差或作弊(即使是无意识的)。
- 理解问题:假设你正在为特定应用或目的(如第15章所述)创建预测。那么,充分理解目标是什么以及衡量成功的良好指标是什么是值得的。没有明确的目标,很容易失去焦点并产生次优结果。通常目标由业务目标决定,此时必须将这些目标转化为一个定义明确的问题,以便你知道何时达到了合适的结果。早期对问题框架的恰当开发可以影响或决定后续建模过程中误差度量、模型甚至数据分析的选择。
- 获取核心数据:虽然数据可能以某种格式存在(否则项目本身一开始可能就不可能进行),但在研究早期进行某种形式的数据审计以确保拥有解决问题所需的最小数据量是很重要的。随着对数据的进一步调查,你对所需数据的理解可能会改变,但快速检查可用数据的种类和数量对于避免在不可能的任务上浪费时间至关重要,并且能留出时间收集你发现可能至关重要的数据。
- 初始数据检查:现在你有了数据,需要更深入地检查数据的质量和可用性。此时你可以开始理解数据的某些关系和特征,但主要目标是了解所需清洗和预处理的量,以及是否有足够的数据继续下去。这是检查缺失数据、异常值、离群点等的好时机(第6.1节)。
- 数据分割:一旦理解了数据的复杂性、质量和数量,你就可以确定将数据集分割为训练集、验证集和测试集(第8.1.3节)。这取决于季节性长度或参数数量(参数越多需要更多训练数据)。这一选择对于确定正确的偏差-方差权衡(第8.1.2节)很重要,以便模型不会过拟合或欠拟合数据。分割还能防止研究人员利用在生成预测时无法获得的信息(也称为数据泄露)。这将是不现实的,并且会产生不科学的结果,因为在现实场景中,你将在未见过的数据上进行测试。
- 数据清洗:此处应移除或替换异常值和离群点。如果有足够的数据,最好直接移除这些值,以避免因使用任何插补方法而引入偏差(第6.1.2节)。如果缺失或移除的值未被插补,必须确保调整模型以处理缺失情况,或者减少数据量以不包含任何缺失实例(尽管这会减少可用于训练/测试的数据量)。如果时间允许,值得对清洗前后的模型进行测试,以检验是否影响模型性能。
- 可视化和数据分析:接下来是深入数据,这可以说是开发预测模型最重要的方面。这将帮助你理解数据中的关系和模式、关系类型、重要的外生变量,甚至可能找出最合适的模型。此步骤可能会与数据清洗步骤迭代进行,因为在没有进行初步分析的情况下,你未必知道什么是离群点,并且
类似地,在数据清理完成之前,你无法完成分析。可视化技术和特征识别方法将在第6.2节讨论。
- 进一步预处理:根据数据分析,可能需要进行进一步预处理。例如,数据可能需要归一化或缩放以帮助训练。或者,可能需要应用变换将数据分布改变为更适合所使用模型的形式,例如正态分布以便使用线性回归模型(第6.1.3节)。
- 初始模型与误差选择:根据分析,选择并推导一些模型。后续可以随时添加更多模型,尤其是在最终在测试集上测试模型并发现局限性或可能的改进之后。在此阶段,选择合适的基准(一个或多个)用于比较模型也很重要(第8.1.1节)。选择初始模型的进一步标准见第12.2节。此外,在此阶段必须选择合适的误差度量。当处理特定应用时,实际应用中的性能才是预测模型有用性/有效性的真正检验。然而,由于计算成本高,可能无法在应用中测试所有模型(及其变体)。在这种情况下,计算成本较低且与应用性能相关的误差度量更为合适。点预测和概率预测的不同误差度量在第7章讨论。
- 训练与模型选择:使用(在之前步骤中确定的)数据划分,在训练数据集上训练数据(第8.2节)。利用验证集比较模型的准确性,并确定每个模型族内的最优超参数(第8.2.3节),包括正则化方法的权重(第8.2.4和8.2.5节)。对于某些模型,如ARIMA(第9.4节),可以在不使用验证集作为留出集的情况下选择模型。在这些情况下,可以使用信息准则(第8.2.2节)在组合的训练和验证集上选择超参数。这些最终选择的模型(包括基准)将进入测试阶段。
注意:如果你考虑滚动预测(第5.2节)或定期更新的预测,则需要在验证集上应用滚动窗口。
- 将模型应用于测试集:在组合的验证集和训练集上重新训练模型(这应改善数据拟合,参见第8.2.5节的数据增强)。同样,如果你考虑滚动预测(第5.2节)或定期更新的预测,则需要在测试集上应用滚动窗口。
- 评估:现在,你必须以多种方式评估最终模型,以了解它们在哪些方面表现不佳(或过好)。最基本的评估是询问哪个模型根据所选度量或指标表现最佳?一天或一周中不同时段是否对不同模型有不同的准确性?准确性如何随预测时域变化?模型与所选基准相比排名如何?表现最佳或最差的模型有哪些共同特征?最后,考虑残差及其分布。是否还有任何剩余的特征或偏差?(第7.5节)
- 模型修正与扩展:应考虑预测修正(第7.5节)(理想情况下在验证集上训练修正,而非测试集)。然而,一个简单的改进是组合你已经生成的模型(第13.1节)。这已被证明是利用模型多样性提高整体准确性的非常有效的方法。
- 应用评估:如果预测用于实际应用,那么其有用性的真正检验是在应用内或针对应用建立的计算机模型内(例如,用于控制储能设备,第15.1节),而不是误差度量。如果适当选择了误差度量,应用性能将与准确性评分相关。这应得到确认,如果存在不一致,应进一步调查。
- 后续步骤:根据对结果的分析,可能会有新的输入变量变得合适(例如不同的天气变量),或使用相同输入的不同方式(例如温度时间序列的更多滞后值,或组合不同输入以创建新变量)。该过程应重复进行(最好使用新的未见数据),以测试进一步的更新或调整。此过程可重复直至达到足够的预测准确性或应用性能。
生成预测的步骤如图12.1所示。该过程可以看作两个组成部分。第一部分是数据收集与分析,描述如何挖掘、分析和整理数据以准备测试。它也用于理解模型中使用的特征。第二阶段是模型选择、训练和测试。
12.2 选择哪个预测模型?
在过去的几章中,从第5.3节列出的不同类型中介绍了多种方法。有点预测和概率预测,那些更适合直接预测而非滚动预测的方法,以及统计和机器学习方法的混合。没有硬性规定来确定哪些是最合适的模型,选择将取决于应用和上下文。然而,可以遵循一些一般原则来帮助缩小模型选择范围:
- 计算成本:短期负荷预测需要至少每天更新。因此,训练计算速度快但精度较低的模型可能比更精确但计算成本高的模型更可取。如果模型运行时间过长,那么尝试使用较少处理能力、内存或运行时间的模型可能是值得的。

- 预测变量与因变量之间被认为存在的关系类型:如果关系不清晰,或看似相对复杂,则机器学习技术可能更可取(见第10章)。解释变量之间的关系是线性还是非线性?如果是线性的,那么简单的统计模型如线性回归和ARIMA可能适用(第9.3节和第9.4节)。如果是非线性的,则可以考虑GAM(第9.6节)或神经网络模型(第10.4节)。
- 特征类型(第6.2节):例如,如果数据的滞后成分很重要,那么自回归模型可能最合适(见第9.4节)。如果只有外生变量如天气或计量经济变量重要,也许横截面预测模型比时间序列模型更合适。在这些情况下,可以应用基于树的模型(第10.3节)和简单前馈神经网络(第10.4节)。
- 特征数量:如果需要大量特征来训练准确模型,则存在过拟合风险。不仅可能需要正则化技术(第8.2.5节),而且更多的模型输入意味着更高的计算成本。像线性回归这样更简单的模型可以快速训练,并且可以在加权正则化方法如LASSO(第8.2.4节)中使用,以帮助变量选择。
- 可用于训练的数据量:许多机器学习技术需要大量数据来创建准确的预测模型,而一些更简单的统计模型可以用相对较少的数据进行训练。
- 时间序列数量:如果您要预测多个时间序列(例如,来自数千户家庭的智能电表预测),那么为每个时间序列生成一个预测模型可能不现实。相反,您可以训练一个单一模型用于所有(或部分)时间序列。这称为全局建模,与单独训练(局部建模)相对。这在第13.4节中有更详细的讨论。
- 可解释性:许多模型,包括支持向量回归和大多数统计方法,比神经网络等其他模型更容易理解,在将输出与原始输入联系起来方面。这意味着预测误差的来源可以更容易地检测和修复,关系也更容易理解。这也意味着可以对方法进行进一步开发,因为模型中的弱点更容易识别。权衡之处在于,更可解释的模型通常性能较低。
- 预测判断:随着预测者获得更多经验,他们可能会逐渐了解哪些方法往往效果好,哪些效果不好。不幸的是,这只能随着时间和实践而积累。
从长远来看,唯一真正检验方法准确性的方法是实施它。在创建预测时,一个好记的格言是乔治·博克斯(ARIMAX模型的Box-Jenkins方法的共同创建者,第9.4节)所说的:“所有模型都是错误的,但有些是有用的。”
然而,首先尝试不同类别的模型,看看哪些效果不错。例如,如果LASSO回归由于变量具有高度非线性关系而效果不佳,那么岭回归也可能表现不佳。同样,如果数据不足以训练复杂的LSTM模型,存在过拟合问题,并且需要大量努力调整正则化参数才能胜过更简单的模型,那么CNN很可能同样难以针对特定问题进行训练。
除非在材料的致谢行中另有说明,本章中的图像或其他第三方材料均包含在本章的知识共享许可中。如果材料未包含在本章的知识共享许可中,且您的预期使用不被法定法规允许或超出允许使用范围,您将需要直接获得版权持有人的许可。