国内抗疫不忘初心 海外载誉使命担当

AI世界 2020-03-09

时间序列target统计模型

2985 字丨阅读本文需 8 分钟




新冠病毒的疫情发展牵动着全国上下,幸好这组数据让人看到了抗疫的曙光:截至19日湖北以外地区新增确诊病例连续16降,13个省区市新增确诊病例为零,连续8天治愈出院超千人……


这场战役中,从病毒基因检测开放平台,到AI热感视觉行为监控系统,到AI消毒清洁机器人,深兰科技多维度防疫产品深入前线、频频助攻,此外深兰也已经正式进入上海市疫情保障企业的名录。


这样的特殊时期,深兰科技依旧矢志不渝地潜心人工智能核心技术的基础研究,近日更是传来喜讯:在美国休斯敦闭幕的第13届网络搜索与数据挖掘国际会议(WSDM 2020)上,深兰科技DeepBlueAI团队荣获WSDM Cup 2020“自动时间序列回归”挑战赛亚军。



WSDM是一个关于的网络搜索与数据挖掘方向的国际会议,WSDM被誉为全球信息检索领域最有影响力也最权威的会议之一。目前已经举办到第十三届。WSDM Cup是与领先的WSDM会议共同举办的一项竞赛式活动。今年,有三项竞赛任务,分别来自微软研究院、4Paradigm和四川航空公司,每项任务都提供一个或多个工业规模的数据集,是比赛具有很强的挑战性,吸引了众多高校和名企的选手参加,竞争颇为激烈。


 ◆  ◆

自动时间序列回归(AutoSeries)竞赛

亚军方案解析




赛题介绍


自动时间序列回归(AutoSeries)竞赛,旨在为时间序列回归任务提出自动化解决方案。这项挑战赛所有数据都是回归问题,这些问题来自不同的时间序列领域,包括空气质量、销售、工作状况、城市交通等。数据集是表格数据,其特征主要有以下三种:IDKey,MainTimestamp,其他特征 和Target。IDKey与MainTimestamp组合唯一标识一个样本。Main_Timestamp,它表示数据表的主要时间戳。Target是需要预测的目标。评测指标采用的RMSE。



赛题难点


这是第一场AutoSeries挑战赛,这次竞赛的主题是时间序列回归,相对于之前的Auto相关竞赛又有了一些新的挑战


如何从时间特征之外的其他变量中自动发现各种信息

如何从不同时间序列数据中自动提取有效特征

如何自动处理不同时间序列之间的关系

如何自动处理长时间和短时间序列数据 

如何自动设计有效的神经网络结构


此外,参赛者还应考虑: 


如何自动有效地选择合适的机器学习模型和超参数

如何使解决方案更通用,即如何使它适用于不可见的数据集?

如何把计算和内存开销控制在可接受范围内



解决方案


异常点平滑处理


在时间序列数据任务中,通常都会出现一些异常值点,而异常值的处理也比较影响效果,相对于非时序数据来说处理时序数据的异常点具有更大的挑战。时序数据一般和时间有很强的关联性,也可能随着时间的推移目标值也漂移到了另外一个值域范围,那么如果直接采用全局均值标准差来处理可能会导致一些非异常点被处理了。考虑到这个问题的存在,我们采用了全局与局部的异常点平滑处理方法。


该方法在考虑全局均值标准差的同时考虑当前点临近时间窗口的均值标准差以及相邻点的值,为了避免正常值被处理这里对偏离全局标准差的倍数设置的比较大。这里还需要特别注意的地方是对训练集和测试集的处理有一些不同,因为测试集的数据是按照时间步慢慢获取的,那么当前时间点的后面的时间步是不可见的,因此对测试数据集的处理是根据当前点之前的临近时间窗口数据进行处理的。


通过全局与局部的方法检测出异常点后,我们根据当前点的局部均值标准差与左右临近值计算出一个相对较正常范围内的值重新赋值作为当前点新的值。




自动时序特征工程


在时间序列相关的任务中,过去一定时间窗口内发生的事情对未来的结果预测影响很大。对于不同级别的时间粒度的数据,通常受作用的时间窗口有些不同。我们也通过对目标值进行错开时间窗口计算相关性发现了这个规律是比较明显的,也符合我们的预期。


例如:当数据是以月为粒度的时候,通常取时间窗口为3的倍数效果较好;当数据是以天为粒度的时候,通常取时间窗口为7的倍数效果较好。在这个时序任务中我们主要做了关于时间滑窗的特征。包括以下这些特征。


包括以下这些特征:


•  基于时间滑窗的target特征

在时间序列数据中target一般不会和临近的时间步值偏离太大,并且它们具有很强的相关性,因此首先我们把过去临近的target作为特征,从实验效果上来看这一组特征对效果影响也是非常大的。这里我们还识别出了数据集的时间步间隔,可以判断数据集是按照小时、分钟、天、月或者周作为时间步,根据时间间隔再用模型验证搜索来确定特征窗口大小。


•  基于时间滑窗的 target统计特征

对target做完滑窗之后,还会进一步对它做统计。有两种统计方式,第一种是对过去最近的N天进行统计,根据时间步的差异有一些不同,对于时间间隔为天的一般取最近2、3、5、7天进行统计,同时这里也会考虑到内存的限制。第二种是把一个大的时间窗口分成N段,分别对每段做统计。统计的计算有最大值、最小值、均值、标准差等。


•  基于时间滑窗 target趋势特征

计算target的变化率,可以反映出变化趋势。变化率 = (上个target - 上上个target)/上上个target。


•  基于时间滑窗的重要原始特征

首先使用原始特征训练lightGBM模型并获得特征的重要性,然后根据特征重要性进行排序。相对于历史target来说,其他原始特征的重要性更低,因此我们选择了比target更小的时间窗口,然后根据时间窗口和系统限制的资源来确定使用的特征数量。

 

•  基于时间滑窗的统计特征

这里分别对分类特征和数值型特征进行统计特征的计算。对于分类特征,在时间窗口内统计特征值出现得频次与比率。对于数值型特征,这里的计算方式与基于target的统计一样,统计最大值、最小值、 均值、标准差,只是时间窗口会控制的更小一些。


•  其它特征

除以上特征,我们也尝试用训练集统计的特征直接作为全部数据的特征;如,对分类特征在训练集全局统计频率与比率,对两个特征重要性高的分类特征做组合在统计频率与比率,以及对一个特征重要性高的分类特征与一个特征重要性高的数值特征做组合,基于分类特征对数值特征做统计。我们也考虑了历史target与其他特征的交叉组合,例如target与其他重要性较高的数值特征进行乘或除等交叉方式。在组合特征上我们做了许多的探索。


数据采样

 

在自动特征工程和自动特征选择阶段通常会比较耗时、耗内存,为了加快这个过程我们对数据进行了采样。时间序列的采样需要注意采样方法,如果直接对数据进行随机采样,这样会导致同一个ID的不同时间戳的数据丢失,使得数据不够完整,这样效果比较差和全量数据的效果就没有了可比性。考虑到这个问题,我们对ID进行了随机采样,对于不同大小的数据量我们使用不同的采样比率,数据越大采样比率越小,当数据量比较大的时候,按照时间步对数据进行截断,保留后面的时间步数据,这样的采样方式和用全量的采样基本效果一致,最后的特征选择效果也比较稳定。

 

基于时间滑窗的动态权重融合


在模型融合上我们用到了两个差异性比较大的线性模型和树模型,包括线性回归和LightGBM模型。在这个竞赛中的不同数据集上这个两个模型的效果有比较大的不同,有些数据集效果接近,有些线性回归效果更好,有些LightGBM模型效果更好。经过分析发现这些数据集随着时间变化的规律有很大的差异性,有些任务的target随着时间不断的增大,这样的数据通常不适合树模型。


此外对于同一个数据集,不同模型在不同的时间段的效果表现差异也会有较大变化。针对以上问题我们设计了一个基于时间滑窗的动态权重融合方法。该方法首先用验证集来确定初始的融合权重W0,然后对测试集设置一个时间窗口,第一个时间窗口的预测就使用W0作为融合权重,当第一个时间窗口结束后我们根据第一个时间窗口的预测结果得到该窗口的最优融合权重W1,然后根据公式W1=r*W0+(1-r)*W1更新W1,这样后一个窗口的测试结果就使用新的W1作为融合权重,依此类推进行迭代更新。这样随着时间的变化,过去时间更久的结果对融合影响会变得更小。



总结


在这次竞赛中,我们对数据做了许多探索工作,也做了很多实验,最终构建了一套完整自动化时间序列预测系统。主要有几个重要的部分:数据预处理、自动化时间序列特征工程、自动化模型构建以及基于时间滑窗的动态权重融合等,同时在代码上也做了很多优化,比较好的控制了时间与内存的开销。


本次WSDM Cup举办的Auto Time Series挑战赛是第一次自动化时间序列预测竞赛。时序任务是一个常见的数据挖掘任务,具有重要的研究和应用价值,随着研究的深入我们相信未来自动化时序预测系统将会在众多实际场景中得到应用。




免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:AI世界
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...