【IT168 资讯】今天介绍一个通用框架,用于开发时间序列模型,生成特征并对数据进行预处理,并探索使这一过程自动化的潜力,以便将先进的机器学习算法应用于几乎所有的时间序列问题。
目前大多数机器学习算法都不具有时间意识,不容易应用于时间序列和预测问题。利用像XGBoost等这样的先进算法甚至线性模型,通常需要大量的数据准备和特征工程,例如,创建滞后特征,去除目标以及检测周期性。在需要预测未来多个时间点窗口的常见情况下,所需的预处理变得更加困难。因此,大多数实践者都依赖传统的方法,如ARIMA或趋势分析,这些方法具有时间意识,但表达能力较差。本文介绍了解决这一挑战的非常好的实践,通过引入一个开发时间序列模型,生成特征和预处理数据的通用框架,探索使这一过程自动化的潜力,以便将先进的机器学习算法应用于几乎任何时间序列问题。
介绍
时间序列预测是数据科学中最难的问题之一。它从字面上涉及预测未来的事件,并推断一个潜在的复杂系统如何演变。在传统的机器学习问题中,我们经常假设预测数据与训练数据相似。然而,时间序列问题本质上是动态的,并且正在发生变化,特别是对于我们稍后将讨论的非平稳信号。这放大了对过度拟合的敏感性,并且也可能使一些模型难以找到开始的预测信号。
目前解决这些挑战的非常先进的机器学习算法(例如XGBoost)没有时间意识。通常是在形成预测时一次看一排。为了将这些方法用于预测,我们需要根据过去和现在的数据及时推导信息特征。本文介绍了此功能工程过程的框架,并详细介绍了如何构建更强大的时间序列预测模型。
值得一提的是,有几个时间序列专门的算法,如ARIMA,指数平滑,以及各种分解和趋势方法。在下面讨论的框架和特征工程也可以使这些算法受益,因为将多变量数据和更丰富的特性随时间变化也而更加实用。
时间序列框架
在构建时间序列模型时,我们需要定义如何创建特征以及如何使用模型。下面我们介绍一个通用的时间序列框架来对这些信息进行编码,这也使我们能够在稍后自动化这个过程。
时间序列的特征推导
预测点定义了正在进行预测的任意时间点后。特征推导窗口(FDW)定义了一个相对于预测点的滚动窗口,该窗口可用于推导描述性特征。最后,预测窗口(FW)定义了我们希望预测的未来值的范围,称为预测距离(FD)。
时间序列框架捕捉了如何使用模型的业务逻辑。它编码了最近的历史记录,以便做出新的预测(例如,至少28天前),数据的最近可用时间(例如7天前)以及需要哪些预测距离(2至7天天)。预测窗口还为我们提供了一种客观的方法来测量训练模型的总精度,其中总误差可以通过对数据中所有可能的预测点的平均值和在窗口中每个预测距离的准确性来测量。
时间序列特征
基于上面定义的时间序列框架,我们可以生成许多不同的时间序列特征,这些特征可以用来预测不同的预测距离。
例如:
·FDW内部各种滞后
·滚动平均值、最小值、最大值等统计
·布林线指标和统计
这些特征可以来自目标变量或其他任何协变量。
为了将数据集转化为普通机器学习模型可以使用的形式,我们需要为每个预测距离生成示例,并从相对特征推导窗口派生出相应的特征。
对于每个预测距离(FD):
1.根据相对的FDW行计算每行的循环统计量
2.为每一行生成示例,根据这些特征预测FD的未来价值
3.重复每个候选滚动特性
这产生了一个潜在的更大的数据集,用来预测每个预测距离和各种新特征。但是,现在我们可以训练那些没有时间意识的模型以产生准确的预测。预测距离本身可以用作一个特征,或者我们可以为每个距离建立一个单独的模型。
时间系列治疗方法
除了创建新的特征之外,我们还可以考虑转换目标变量的方法,以最大化预测准确性和稳定性。例如,我们可以执行测试来检查目标是处于静止还是非平稳的状态,如果它是周期性的,是基于统计测试的指数趋势。基于这些测试,我们可以选择使用以下方法来转换目标:
·对数转换(对于指数趋势和乘法模型)
·周期性差分(用固定目标制作一个集成模型)
·简单朴素差异(使用最新的FDW行)
在预测时间,这些处理可以被逆转,导致在原始规模上有更准确的预测。
自动化
时间序列框架、处理和候选特征提供了一种将原始数据集系统地转换成数据集的方法,我们可以使用这个数据集训练任意的机器学习模型进行预测。
但是,仍然存在一些挑战:
·如何在这些特性上选择非常好的算法?
·在培训期间,如何正确划分和验证训练期间的时间序列模型?
·如何扩展到大型数据集?
·何处理多个系列(例如,横截面时间序列)数据?
·如何在大量的潜在特性中选择非常好的特性?
由于数据集和业务限制的范围很广,以及对于各个步骤、特征和决策所需的技术细节,使此过程完全自动化是困难的。但是,像DataRobot这样的公司现在正在把重点放在企业和个人用户的自动化非常好的实践上。
结论
在本文中,我们介绍了时间序列预测中涉及的挑战以及如何将先进的机器学习算法应用于这些问题。引入了一个通用的时间序列框架来定义如何使用模型,如何生成预测历史记录特征和基本的时间序列处理,最后,实现这个过程的自动化。时间序列建模是一个非常丰富的主题,其他许多考虑因素都可以合并。这里的实践将有助于获得预测未来事件的最大准确性。