基于条件随机场与Stacking算法的时间序列预测方法和装置与流程

文档序号:15559850发布日期:2018-09-29 01:59阅读:276来源:国知局

本公开的实施例涉及计算机技术领域,尤其涉及一种基于条件随机场与stacking算法的时间序列预测方法、装置、计算机存储介质和电子设备。



背景技术:

相比于简单时间序列,复杂时间序列具有维度更高、更复杂的特点,这使得复杂时间序列的预测比简单时间序列的预测更加困难。然而相比于简单时间序列,复杂时间序列更多地源于生活与生产中,例如:音频、视频以及工业生产系统中的各个运行参数。

针对复杂时间序列,常见的一种预测方法是扩展已经成功应用于简单时间序列数据上的方法,诸如文献《vectorautoregressivemodelsformultivariatetimeseries》与文献《marss:multivariateautoregressivestate-spacemodelsforanalyzingtime-seriesdata》都扩展了自回归模型,使其适应高维度的时间序列;而文献《aserialapproachtohandlinghigh-dimensionalmeasurementsinthesigma-pointkalmanfilter》则针对高维度的时间序列改进了卡尔曼滤波器。

除了传统的机器学习方法之外,近年来深度学习方法也慢慢涉足时间序列预测,文献《areviewofunsupervisedfeaturelearninganddeeplearningfortime-seriesmodeling》对此进行了一个回顾;《deeplearninginfinance》一文则对深度学习方法在金融方面的应用进行了回顾与探讨。长短期记忆网络(lstm)作为循环神经网络(rnn)中一个重要的模型,也广泛应用于时间序列的挖掘中。



技术实现要素:

本公开至少一个实施例的主要目的在于提供一种一种基于条件随机场与stacking算法的时间序列预测方法、装置、计算机存储介质和电子设备。

第一方面,本公开的实施例提供了一种基于条件随机场与stacking算法的时间序列预测方法,所述方法包括:

获得多个基预测器中每个基预测器预测的不同维度的预测数据;

将所述多个基预测器的一部分预测数据作为验证集,输入条件随机场模型;

根据所述验证集中的预测数据,初始化所述条件随机场模型;

在所述条件随机场模型未收敛期间,结合stacking算法,进行多次迭代,直到所述条件随机场模型收敛为止,得到收敛的条件随机场模型;

将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,在将所述收敛的条件随机场模型的输出确定为时间序列预测结果之前,所述方法还包括:

将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,得到所述收敛的条件随机场模型的预测准确度;

将所述收敛的条件随机场模型的输出确定为时间序列预测结果,包括:

在所述预测准确度大于所述预设阈值的情况下,将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,得到所述收敛的条件随机场模型的预测准确度,包括:

将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,将交叉熵作为损失函数,利用adam算法进行训练,得到所述收敛的条件随机场模型的预测准确度。

可选地,在所述条件随机场模型未收敛期间,结合stacking算法,进行多次迭代,包括:

在所述条件随机场模型未收敛期间,以单个维度为粒度,通过cuda和tensorflow并行执行多次迭代。

第二方面,本公开的实施例提供了一种基于条件随机场与stacking算法的时间序列预测装置,所述装置包括:

获得模块,用于获得多个基预测器中每个基预测器预测的不同维度的预测数据;

第一输入模块,用于将所述多个基预测器的一部分预测数据作为验证集,输入条件随机场模型;

初始化模块,用于根据所述验证集中的预测数据,初始化所述条件随机场模型;

迭代模块,用于在所述条件随机场模型未收敛期间,结合stacking算法,进行多次迭代,直到所述条件随机场模型收敛为止,得到收敛的条件随机场模型;

确定模块,用于将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,所述装置还包括:

第二输入模块,用于将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,得到所述收敛的条件随机场模型的预测准确度;

所述确定模块包括:

确定子模块,用于在所述预测准确度大于所述预设阈值的情况下,将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,所述第二输入模块包括:

输入子模块,用于将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,将交叉熵作为损失函数,利用adam算法进行训练,得到所述收敛的条件随机场模型的预测准确度。

可选地,所述迭代模块包括:

迭代子模块,用于在所述条件随机场模型未收敛期间,以单个维度为粒度,通过cuda和tensorflow并行执行多次迭代。

第三方面,本公开的实施例提供了一种计算机存储介质,所述计算机存储介质中存储有可被计算机设备执行的指令代码;所述指令代码在被计算机设备执行时,执行第一方面任一项所述的方法。

第四方面,本公开的实施例提供了一种电子设备,所述电子设备包括至少一个处理器和一个存储器,所述存储器耦接至所述处理器;所述处理器用于执行所述存储器中存储的计算机指令;所述存储器在执行所述计算机指令时,执行第一方面任一项所述的方法。

采用上述技术方案,在多个基预测器的预测基础上,利用本公开实施例提供的方法进行模型融合,融合后的效果相比基预测器结果的简单平均有了2%以上的提升,由于所选用的都已经是集成学习的算法,能力已经很强,这样的提升是非常可观的。

此外,利用条件随机场作为stacking过程的上层预测器,既利用了已有预测器的结果,又刻画了不同维度之间的关系。由于可以利用神经网络中的方法对这个上层预测器进行实现,也可以通过反向传播利用这个上层预测器对神经网络的结果进行微调,以达到更好的效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的基于条件随机场与stacking算法的时间序列预测方法的流程图。

图2是本发明实施例提供的基于条件随机场与stacking算法的时间序列预测装置的示意图。

图3是本发明实施例提供的电子设备的示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明实施例提供了一种基于条件随机场与stacking算法的时间序列预测方法,通过模型融合的方式对复杂时间序列进行预测。图1是本发明实施例提供的基于条件随机场与stacking算法的时间序列预测方法的流程图,如图1所示,该方法包括以下步骤:

步骤s11:获得多个基预测器中每个基预测器预测的不同维度的预测数据;

步骤s12:将所述多个基预测器的一部分预测数据作为验证集,输入条件随机场模型;

步骤s13:根据所述验证集中的预测数据,初始化所述条件随机场模型;

步骤s14:在所述条件随机场模型未收敛期间,结合stacking算法,进行多次迭代,直到所述条件随机场模型收敛为止,得到收敛的条件随机场模型;

步骤s15:将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

首先,执行步骤s11,通过多个基列预测器,可以预测出复杂时间序列的各个维度的预测数据。以分类问题为例,获得基预测器预测的第i维度数据属于第k类的概率。或者,以天气预报为例,通过抓取天气后报网站(http://tianqihoubao.com/)的数据,选用adaboost、gbdt、随机森林等算法,得到基预测器,然后获得基预测预测的位置为的城市第二天的天气情况

然后,执行步骤s12,将多个基预测器的一部分预测数据作为验证集,输入条件随机场模型。示例地,执行qi,k←pi,k,其中,pi,k表示验证集中的预测数据,例如:第i维度数据属于第k类的概率,qi,k表示条件随机场模型的输入,其中,i和k分别为大于0的整数。

接着,执行步骤s13,根据条件随机场模型的输入,初始化条件随机场模型。示例地,执行ui,k←-logpi,k,其中,ui,k表示表示条件随机场模型收敛之前的初始能量,产生于多个基预测器预测的不同维度的预测数据。

接着,执行步骤s14。示例地,步骤s14的执行过程如以下代码所示:

其中,第1行语句whilenotconvergeddo直至最后一个行语句end,表示这两个语句之间的各行循环执行。步骤s13中,进入平均场迭代,使得条件随机场模型最终收敛。

κm函数是一个核函数,用以刻画不同的两个维度之间的关系,可以设置多个这样的函数。示例地,以天气预报为例,κm符合以下公式:

这里表示基预测器预测的维度i的预测数据,构成了θα和θβ是需要学习的参数,distancei,j表示维度i与维度j之间的距离。

wm是与核函数对应的权值,用以调整核函数所刻画的关系对最终的预测结果的影响,是需要学习的参数。函数μ用以刻画预测数据之间的关系。示例地,以分类问题为例,函数μ符合以下公式:

即,只有同一类别的中间结果会对最终的预测结果产生影响。上述公式可适用于天气预报。

在具体实施时,利用一维的卷积层来实现第3行语句,而利用神经网络中常用的softmax层来实现最后一行语句。最后一行语句对结果进行一个柔性最大传递函数(softmax),起到正则化的作用,其中,

在一种实施方式中,步骤s14包括:在所述条件随机场模型未收敛期间,以单个维度为粒度,通过cuda和tensorflow并行执行多次迭代。

在具体实施时,上述循环部分是可以并行的,于是使用cuda这一基于gpu的计算框架进行实现。以单个维度为粒度,对循环部分进行并行,并且利用gridsearch的方式进行参数的估计。

上述循环部分往往在循环一定轮数之后达到收敛,因而可以通过循环神经网络的结构实现,上述代码中的第2行语句可替换为:

以避免产生数量巨大的向量(tensor),从造成巨大的内存(显存)负担。

其中,

维度间的距离可以由欧式距离这样的物理意义得到,也可以由pearson系数这样的相关系数得到,利用一个作为超参数的阈值以定义远近。这样定义的作用类似一个截断的高斯过滤器。

在执行完步骤s14之后,得到收敛的条件随机场模型。最后,将收敛的条件随机场模型的输出确定为时间序列预测结果。

在一种实施方式中,在步骤s15之前,所述方法还包括:

将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,得到所述收敛的条件随机场模型的预测准确度;

相应地,步骤s15包括:

在所述预测准确度大于所述预设阈值的情况下,将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

为了保证最终的预测结果的准确度,在得到收敛的条件随机场模型之后,首先利用验证集数据,使用交叉熵为损失函数,使用adam方法进行训练,得到收敛的条件随机场模型的预测准确度。在收敛的条件随机场模型的预测准确度大于预设阈值的条件下,认为收敛的条件随机场模型的输出是可信的,因而将收敛的条件随机场模型的输出确定为时间序列预测结果。其中,预设阈值根据对准确度的需求确定,要求准确度高,可以将预设阈值设置为一较大值。

采用上述技术方案,在多个基预测器的预测基础上,利用本公开实施例提供的方法进行模型融合,融合后的效果相比基预测器结果的简单平均有了2%以上的提升,由于所选用的都已经是集成学习的算法,能力已经很强,这样的提升是非常可观的。

此外,利用条件随机场作为stacking过程的上层预测器,既利用了已有预测器的结果,又刻画了不同维度之间的关系。由于可以利用神经网络中的方法对这个上层预测器进行实现,也可以通过反向传播利用这个上层预测器对神经网络的结果进行微调,以达到更好的效果。

基于同一发明构思,本发明实施例提供了一种基于条件随机场与stacking算法的时间序列预测装置。图2是本发明实施例提供的种基于条件随机场与stacking算法的时间序列预测装置的示意图。如图2所示,装置包括:

获得模块201,用于获得多个基预测器中每个基预测器预测的不同维度的预测数据;

第一输入模块202,用于将所述多个基预测器的一部分预测数据作为验证集,输入条件随机场模型;

初始化模块203,用于根据所述验证集中的预测数据,初始化所述条件随机场模型;

迭代模块204,用于在所述条件随机场模型未收敛期间,结合stacking算法,进行多次迭代,直到所述条件随机场模型收敛为止,得到收敛的条件随机场模型;

确定模块205,用于将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,所述装置还包括:

第二输入模块,用于将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,得到所述收敛的条件随机场模型的预测准确度;

所述确定模块包括:

确定子模块,用于在所述预测准确度大于所述预设阈值的情况下,将所述收敛的条件随机场模型的输出确定为时间序列预测结果。

可选地,所述第二输入模块包括:

输入子模块,用于将所述多个基预测器的另一部分预测数据作为测试集,输入所述收敛的条件随机场模型,将交叉熵作为损失函数,利用adam算法进行训练,得到所述收敛的条件随机场模型的预测准确度。

可选地,所述迭代模块包括:

迭代子模块,用于在所述条件随机场模型未收敛期间,以单个维度为粒度,通过cuda和tensorflow并行执行多次迭代。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本发明实施例提供了一种电子设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中基于条件随机场与stacking算法的时间序列预测方法。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中基于条件随机场与stacking算法的时间序列预测方法。

结合图1描述的本发明实施例的基于条件随机场与stacking算法的时间序列预测方法可以由电子设备来实现。图3示出了本发明实施例提供的电子设备的示意图。

电子设备可以包括处理器301以及存储有计算机程序指令的存储器302。

具体地,上述处理器301可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器302可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器302可在数据处理装置的内部或外部。在特定实施例中,存储器302是非易失性固态存储器。在特定实施例中,存储器302包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器301通过读取并执行存储器302中存储的计算机程序指令,以实现上述实施例中的任意一种基于条件随机场与stacking算法的时间序列预测方法。

在一个示例中,电子设备还可包括通信接口303和总线310。其中,如图3所示,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。

通信接口303,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线310包括硬件、软件或两者,将执行基于条件随机场与stacking算法的时间序列预测方法的设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

另外,结合上述实施例中的基于条件随机场与stacking算法的时间序列预测方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于条件随机场与stacking算法的时间序列预测方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1