时间序列任务

一、时间序列预测比较常见的工具方法

通常来说,时间序列预测工具方法可以归结为几大类:
1、一类是基于业务场景理解的因子预测模型,
2、一类是传统时间序列预测模型,比如均值回归、ARIMA、指数平滑预测法(比如Holt-Winters)等,
3、一类是机器学习模型,比如支持向量机、树模型(比如GBM、QRF)、神经网络模型(比如RNN、CNN)等。
4、一类是深度学习模型,比如former系列、dlinear等模型

1.1 基于业务场景理解的因子预测模型

基于因子的时序预测是一种传统的预测手法,在一些特定场景有着比较好的表现,比如某条业务线刚起步,历史数据的积累有限的时候。同时该方法基于其业务解释性强、准确率也比较高的特点,可以作为时序预测项目的baseline,并且在黑盒模型做输出时,可以帮助进行后置校准,避免输出较大的偏差。

1)需要展示的客流量预测-

本节的关键点:需要模型解释性有较高的要求,同时周期性较强的场景
对于这样的业务场景,可以考虑分解出最重要的周期因子,来进行可解释地稳定地预测。
具体实施:考虑到时间序列数值除了受本身业务的影响,存在固定的周期性波动,同时还会受到已知或者未知事件的影响。因此在预测时,会单独将一些已知的重要事件单独进行预估,在基础预测的再叠加事件的影响

因子预测的公式可以是:某日话务量 = 日话务基准量 * 周规律因子 * 事件影响因子

2)一条新开拓的国际业务线

新业务,历史数据有限,同时数据量变化比较大。
如果只能拿到两个月的数据,并且短时间内数据变化比较大,因此,前期的参考性不大,那么需要去通过业务的理解,寻找跟业务有关的特定因子来进行预测。

可能仅仅只能拿到2个月的数据,并且短时间内时序数据的性质(均值、方差)就会有极大的改变。因此用历史数据来预测未来的历史数据的参考性较低,所以需要深入业务去理解,找寻该业务特有的相关因子来进行预测,思路可以是:

首先基于业务相关度进行挖掘(未来入住需求量与售前话务量强相关,新市场新签用户数与未来下单量强相关),然后基于树模型的特征重要性进行核心影响因子的识别,来选择出最为重要的因子特征。最后基于统计学模型对核心影响因子的未来数值进行预测,并在此基础上预测未来的业务线状态。

1.2 传统时间序列预测模型

传统时间序列预测模型,通常指用于时间序列分析/预测的统计学模型,比如常用的有均值回归、ARIMA、指数平滑预测法等。

但是由于真实应用场景的复杂多样性,(现实世界的时间序列往往受到各种不同因素的限制与影响,而难以预测),比如受到营销计划、自然灾害等的影响,传统的单一统计学模型的准确率相对来说会比机器学习差一部分,而机器学习模型或者更复杂的ensemble集成模型会有更好的效果。但传统时间序列预测模型也有其重要的意义,比如说:

  • 可以作为预测的baseline model,为项目提供一个准确率的基准线,来帮助评估其他模型的提升。
  • 作为集成模型中的一块,参与时序集成模型的训练。
  • 可以提供一个预测结果的合理的范围,因为话务量通常不会短时间内激增。使用这个合理的范围,在黑盒模型最后输出结果时,帮忙进行后置校准,从而使预测系统更加稳定。

1.3 机器学习模型

0)基于特征工程+机器学习的时间序列预测方法

基于时间序列的特征工程,可将时间序列预测问题转化为回归预测问题,然后采用机器学习的回归算法解决。
1、日期时间相关特征:年、月、日、时、分、星期几、是否工作日、一年中的第几天/周,一天中的哪个时段:凌晨、早晨、上午、中午、下午、傍晚、晚上、深夜。
2、节假日特征:法定节假日等特征
3、滞后特征:y(t-d),其中d为滞后步数
4、滑窗/扩展窗特征:统计值:四分位数、中位数、平均值、标准差、偏度、峰度、最大值、最小值等
5、同期值特征:前n个周期/天/月/年的同期特征
6、交叉特征
(1)类别特征间组合构成新特征,比如星期和小时:Mon_10(星期一的十点)
(2)类别特征和连续特征,a)连续特征分桶后进行笛卡尔积,b) 基于类别特征进行groupby操作构造的统计特征
(3)连续特征和连续特征,a)同比和环比(一阶差分)、b)二阶差分:反应变化趋势,c)比值
7、业务域特征:光功率预测或者负荷预测的预测气象特征、光伏电站开机容量、工厂排产等与业务密切相关的先验知识。

1)树模型

树模型的一个好处就是,相对于以上的方法,能更方便地添加一些category类的特征比如:是否季节末、是否公共价格、是否营业时间等。

在用树模型做时间序列预测时,特征工程的核心要点在于如何从历史的数据中抽取特征,这里介绍一些特征构建的经验:

  • 离散类时间特征:年月日时分数,周几,一年中的第几天,第几周,一天中的哪个时间段等
  • 判断类时间特征:是否调休,是否周末,是否公共假期等
  • 滑窗类时间聚合特征:过去X天平均值,过去X天方差,过去X天最大值,过去X小时四分位数,过去X天偏态系数等
  • 其他时序模型的预测值作为特征:ARIMA、SARIMA、指数平滑等
  • 其他相关业务线数据的引入:比如对于售后业务线,引入售前业务线/预定业务线等数据,帮忙进行售后业务线的预测

1.4 神经网络模型

常见的利用神经网络技术来做时间序列预测的方法有dlinear、pathtst、itransformer、autoformer、CNN、RNN、LSTM、GRU等。
former系列链接为:https://blog.csdn.net/qq_38147421/article/details/139756656

相比于树模型需要构建相关特征,神经网络通常需要喂入大量的数据进行训练。比如LSTM来说,一方面比较方便整合外部的变量,另一方面LSTM本身也能够自动抽取时序特征的能力。

在实践中,我们发现对于一些产线,采用多任务学习的方法,可以有效地提高模型的泛化性以及准确率,比如预测未来某天某些时段的值时,不同时段的值作为不同的任务目标来进行学习,或者是加入相关性很强的其他时序数据作为不同的任务目标。

二、一些经验与思考

1)训练测试数据的划分
在做训练测试数据的划分时,要注意不能泄露测试数据给模型,因此在做训练测试数据划分时,需要让测试数据全都在训练数据的时间戳之后。
2)一线业务人员经验的使用
会知道在历史数据里哪些时间段的数据是异常的原因是什么,比如各种事件会对不同的业务线产生什么样的影响、一些预测偏差较大的原因可能是什么。
3)利用能反映未来的信息
当我们在做时间序列预测时,本质我们是在利用历史数据来预测未来,那么如果我们能够拿到更多关于未来的信息,则可以帮助我们预测的更准。什么是关于未来的信息呢?比如说:用户的预订信息,用户的浏览数据,这些数据能够侧面反映用户对于未来某天的兴趣值,从而帮助我们窥探未来。
4)如何保证输出结果的稳定性
在使用黑盒模型时,我们会发现有时模型输出会存在一些异常点,这可能是由于历史数据中存在一些没有被剔除的噪音,因此我们需要构建多种可解释性强的预测尺度范围,来校准最后的输出结果,从而提高模型输出的稳定性,生产中这样的校准有时也可以提高一定的准确率。
5)重新训练模型的频率
6)如何评估模型的好坏
7)历史数据该相信多少
我们对于越久远的历史数据的信任度应该是要逐渐下降的。处理的方法是一方面我们可以通过分析来判断训练应该取多久内的时间序列数据,另一方面我们在训练时可以赋予越近的数据更高的权重。

面试:

1、如何预测未来某天某些时段的值?
不同时段的值作为不同的任务目标来进行学习,或者是加入相关性很强的其他时序数据作为不同的任务目标。有点多任务学习的思想。

2、时序任务中,树模型和神经网络的区别?

(i)用树模型做时间序列预测时,需要对相关特征进行构建,核心要点在于如何从历史的数据中抽取特征

  • 离散类时间特征:年月日时分数,周几,一年中的第几天,第几周,一天中的哪个时间段等
  • 判断类时间特征:是否调休,是否周末,是否公共假期等
  • 滑窗类时间聚合特征:过去X天平均值,过去X天方差,过去X天最大值,过去X小时四分位数,过去X天偏态系数等
  • 其他时序模型的预测值作为特征:ARIMA、SARIMA、指数平滑等
  • 其他相关业务线数据的引入:比如对于售后业务线,引入售前业务线/预定业务线等数据,帮忙进行售后业务线的预测

(ii)神经网络做时间序列预测的方法常用的比如:CNN、RNN、LSTM、GRU等;神经网络通常需要喂入大量的数据进行训练。比如LSTM来说,一方面比较方便整合外部的变量,另一方面LSTM本身也能够自动抽取时序特征的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值