借鉴Meta的Prophet包中的思想,为时间序列机器学习模型创建强大的特征
Meta的Prophet包¹是最广泛使用的时间序列包之一。至少根据我的经验来看,我浏览了一份以后阅读的时间序列文章清单。
开玩笑的话不谈,我以前用过这个包,我很喜欢它。
关于时间序列建模的另一个很好的资源是Vincent Warmerdam的演讲,题为“Winning with Simple, even Linear, Models”²,他讲述了使用线性模型对时间序列进行建模(需要一些准备工作)。
现在,有些数据科学的元素模糊了艺术和科学的界限——比如超参数调整,或者定义神经网络的结构。
我们将在艺术方面发展,并借鉴很多优秀艺术家所做的事情:从他人那里借鉴思想。因此,在这一系列文章中,我们将从Prophet借鉴特征工程的思想,并从Vincent借鉴线性建模的思想,对一个真实的时间序列进行回归。
整体图景
在我们着手进行特征工程之前,让我们首先了解总体目标。
总体目标很简单——在指定的时间范围内,生成最准确的未来事件预测。
我们将从一个只包含日期变量和感兴趣的数量的时间序列开始。从这个序列中,我们将衍生出附加的信息,以便我们能够准确地建模未来的结果。这些额外的特征将大量“受到启发”于Prophet。
然后,我们将把我们构建的数据输入到一个轻量级模型中,让它学习如何最好地预测未来。之后,我们将深入探讨该模型的内部运作方式——毕竟,我们需要了解驱动我们预测的因素。
现在,我们已经看到了整体图景,让我们着眼于细节,首先看一下我们的数据。