大家好,时间序列数据是许多现实世界问题的核心,例如预测能源消耗、气象预报、库存管理。传统上,使用专门的时间序列模型如Prophet来对此类数据进行建模和预测。然而,通过将时间序列数据转换为表格格式,可以利用更广泛的机器学习算法和技术,从而发现新的见解和改进预测性能。
本文将介绍使用开源库将日常能源消耗的时间序列数据集转换为表格形式,探索多种机器学习模型,包括梯度提升决策树和自动机器学习(AutoML),将其与Prophet模型的性能进行对比。可以发现,使用梯度提升决策树对表格数据进行多类别分类,可将样本外预测误差降低67%,与梯度提升相比,AutoML进一步将预测误差降低42%。
这些分析说明,通过适当的特征工程和机器学习技术,我们能够从时间序列数据中挖掘出更多有价值的信息,显著提高预测准确性。
1.检查数据
该数据表示PJM每小时的能源消耗量(以兆瓦为单位)。PJM Interconnection LLC(PJM)是美国的一个区域输电组织(RTO),是东部互联电网的一部分,为多州提供电力传输服务。
数据集包括日期列和兆瓦级能耗列,目标是训练时间序列预测模型,预测明天的日能耗水平分为 4 个等级:low
、below average
、above average
和high
。这些等级根据整体日能耗分布的四分位数确定。
首先演示如何应用时间序列预测方法(如Prophet),但这些方法仅适用于时间序列数据的某些类型的 ML 模型。接下来,将问题重构为一个标准的多类分类问题,可以应用任何机器学习模型,并通过使用监督式ML获得出色的预测结果。
首先,我们将数据转换为日均能耗,并将列重命名为先知预测模型期望的格式。实际值的日能耗水平转换成四分位数,即预测的值,训练数据及每个日能耗水平对应的四分位数如下所示,四分位数是使用训练数据计算的,以防止数据泄露。
下面是用来拟合预测模型的训练数据:
下面是测试数据,我们将根据这些数据来评估我们的预测结果。
2.训练和评估Prophet预测模型
根据上图显示,使用 2015-04-09
作为训练数据范围的结束日期,并从 2015-04-10
开始进行测试数据。仅使用训练数据计算每日能耗的四分位阈值,以避免数据泄漏。
接下来,预测测试数据期间 PJME 的日能耗水平(以兆瓦为单位),并将预测值表示为离散变量。该变量表示每日能源消耗水平的四分位数,可分为 1("低")、2("低于平均水平")、3("高于平均水平")或 4("高")。在评估方面,使用 scikit-learn
中的 accuracy_score
函数来评估模型的性能。由于我们是以这种方式提出问题的,因此能够使用分类准确率来评估模型的次日预测,并与未来的模型进行比较。