时间序列中的特征选择:在保持性能的同时加快预测速度
当我们对数据建模时,首先应该建立一个标准基线方案,然后再通过优化对该方案进行修改。在项目的第一部分中,我们必须要投入时间来理解业务需求并进行充分的探索性分析。建立一个原始模型。可以有助于理解数据,采用适当的验证策略,或为引入奇特的想法提供数据的支持。
在这个初步阶段之后,我们可以根据不同的情况选择不同的优化方式,例如改变模型,进行数据的处理,甚至是引入更多的外部数据。
对于每个方案,我们都需要对数据进行处理,建模和验证,这都需要从头开始对模型进行再训练,这时就会浪费很多的时间,如果我们可以通过一些简单而有效的技巧来提高预测的速度。例如,我们都知道特征选择是一种降低预测模型输入的特征维数的技术。特征选择是大多数机器学习管道中的一个重要步骤,主要用于提高性能。当减少特征时,就是降低了模型的复杂性,从而降低了训练和验证的时间。
在这篇文章中,我们展示了特征选择在减少预测推理时间方面的有效性,同时避免了性能的显着下降。tspiral 是一个 Python 包,它提供了各种预测技术。并且它与 scikit-learn 可以完美的集成使用。
为了进行实验,我们模拟了多个时间序列,每个小时的频率和双季节性(每日和每周)。此外我们还加入了一个从一个平滑的随机游走中得到的趋势,这样就引入了一个随机的行为。
这个时序数据的最后一部分是用作测试使用的,我们会记录其中测量预测误差和做出预测所需的时间。对于这个实验模拟了100个独立的时间序列。之所以说“独立”,是因为尽管它们表现出非常相似的行为,但所有的系列并不相互关联。通过这种方式,我们分别对它们进行建模。
我们使用目标的滞后值作为输入来预测时间序列。换句话说,为了预测下一个小时的值,我们使用表格格式重新排列了以前可用的每小时观测值。这样时间序列预测的特征选择就与标准的表格监督任务一样。这样特征选择的算法就可以简单地对滞后的目标特征进行操作。下面是一个使用递归预测进行特征选择的例子。
完整文章:
https://avoid.overfit.cn/post/7488218628c84fdb9423484a98bbfa3e