掌桥专利:专业的专利平台
掌桥专利
首页

增强的时间序列预测

文献发布时间:2024-04-18 19:58:30


增强的时间序列预测

相关申请的交叉引用

本申请要求2022年6月10日提交的题为“ENHANCED TIME SERIES FORECASTING”的美国临时申请第63/351,016号的优先权,该美国临时申请的公开内容通过引用以其整体结合于此。

技术领域

本公开的方面涉及时间序列分析,更具体地说,涉及用于时间序列预测的基于增强的梯度提升决策树(gradient boosting decision tree,GBDT)的算法。

背景

时间序列分析通常指各种统计建模技术,包括趋势分析、季节性/周期性分析和异常检测。基于时间序列分析的预测非常普遍,并用于各种行业。例如,这种预测用于预测随时间变化的值,包括可能影响一系列其他活动的天气模式以及影响收入预测、股票价格表现和库存要求的销售量。此外,时间序列分析在医学上可以用来建立心脏或大脑功能的基线,在经济学上可以用来预测利率。

时间序列预测是由分析历史数据的复杂统计模型构建的。有许多不同类型的时间序列模型(例如,自回归、移动平均、指数平滑模型)和许多不同的回归模型(例如,线性、多项式回归模型)。所有模型都有多个参数,它们能够基于这些参数被构建。现代数据科学家利用机器学习(ML)技术来为他们正在进行的预测找到最佳的模型和输入参数集。

发明内容

本公开包括但不限于以下条款。

条款1.一种用于使用时间序列预测模型来执行时间序列预测的方法,所述时间序列预测模型包括属性模型和趋势检测模型,所述方法包括:

使用所述属性模型分析时间序列数据,以基于所述时间序列数据确定特征集,所述特征集包括周期性分量;

使用所述趋势检测模型分析所述时间序列数据,以确定所述时间序列数据的趋势数据;以及

组合所述特征集和所述趋势数据以生成时间序列预测。

条款2.根据条款1所述的方法,其中,所述特征集还包括任意分量。

条款3.根据条款1所述的方法,其中,所述属性模型还包括单向权重调整模块,所述方法还包括:

由所述单向权重调整模块,将所述时间序列数据划分成段集合;以及

对于所述段集合中的每个段,由所述单向权重调整模块,基于所述段的年龄为来自所述段的时间序列数据分配权重。

条款4.根据条款3所述的方法,其中,所述段集合中的每个段对应于所述时间序列数据的时间周期,并且其中,将所述时间序列数据划分成所述段集合包括:

基于每个时间周期的时间序列数据的值和每个时间周期的时间序列数据的一个或更多个季节性分量来识别所述段集合中的每个段。

条款5.根据条款1所述的方法,其中,所述属性模型包括:

季节性分量检测模块,所述季节性分量检测模块包括自然语言处理算法,用于从所述时间序列数据中提取所述特征集。

条款6.根据条款1所述的方法,其中,所述属性模型包括自动数据清理模块,并且其中,所述方法还包括:

使用所述自动数据清理模块从所述时间序列数据中过滤任何趋势、阶跃变化和噪声。

条款7.根据条款6所述的方法,其中,从所述时间序列数据中过滤任何趋势、阶跃变化和噪声包括:

识别所述时间序列数据的当前段;

基于所述当前段的时间序列数据的值和所述当前段的时间序列数据的一个或更多个季节性分量来确定所述时间序列数据的当前上下文;

基于所述时间序列数据的当前上下文确定对所述时间序列数据的调整;以及

将所述调整应用于所述时间序列数据。

条款8.一种系统,包括:

存储器,所述存储器用于存储包括属性模型和趋势检测模型的时间序列预测模型;以及

处理设备,所述处理设备能够操作地耦合到所述存储器,所述处理设备:

使用所述属性模型分析时间序列数据,以基于所述时间序列数据确定特征集,所述特征集包括周期性分量;

使用所述趋势检测模型分析所述时间序列数据,以确定所述时间序列数据的趋势数据;以及

组合所述特征集和所述趋势数据以生成时间序列预测。

条款9.根据条款8所述的系统,其中,所述特征集还包括任意分量。

条款10.根据条款8所述的系统,其中,所述属性模型还包括单向权重调整模块,并且所述处理设备还:

使用所述单向权重调整模块,将所述时间序列数据划分成段集合;以及

对于所述段集合中的每个段,使用所述单向权重调整模块,基于所述段的年龄为来自所述段的时间序列数据分配权重。

条款11.根据条款10所述的系统,其中,所述段集合中的每个段对应于所述时间序列数据的时间周期,并且其中,为了将所述时间序列数据划分成所述段集合,所述处理设备:

基于每个时间周期的时间序列数据的值和每个时间周期的时间序列数据的一个或更多个季节性分量来识别所述段集合中的每个段。

条款12.根据条款8所述的系统,其中,所述属性模型包括季节性分量检测模块,所述季节性分量检测模块包括自然语言处理算法,并且所述处理设备还使用所述自然语言处理算法从所述时间序列数据中提取所述特征集。

条款13.根据条款8所述的系统,其中,所述属性模型包括自动数据清理模块,并且所述处理设备还:

使用所述自动数据清理模块从所述时间序列数据中过滤任何趋势、阶跃变化和噪声。

条款14.根据条款13所述的系统,其中,为了从所述时间序列数据中过滤任何趋势、阶跃变化和噪声,所述处理设备:

识别所述时间序列数据的当前段;

基于所述当前段的时间序列数据的值和所述当前段的时间序列数据的一个或更多个季节性分量来确定所述时间序列数据的当前上下文;

基于所述时间序列数据的当前上下文确定对所述时间序列数据的调整;以及

将所述调整应用于所述时间序列数据。

条款15.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由处理设备执行时使所述处理设备:

提供包括属性模型和趋势检测模型的时间序列预测模型;

使用所述属性模型分析时间序列数据,以基于所述时间序列数据确定特征集,所述特征集包括周期性分量;

使用所述趋势检测模型分析所述时间序列数据,以确定所述时间序列数据的趋势数据;以及

组合所述特征集和所述趋势数据以生成时间序列预测。

条款16.根据条款15所述的非暂时性计算机可读介质,其中,所述特征集还包括任意分量。

条款17.根据条款15所述的非暂时性计算机可读介质,其中,所述属性模型还包括单向权重调整模块,并且所述处理设备还:

使用所述单向权重调整模块,将所述时间序列数据划分成段集合;以及

对于所述段集合中的每个段,使用所述单向权重调整模块,基于所述段的年龄为来自所述段的时间序列数据分配权重。

条款18.根据条款17所述的非暂时性计算机可读介质,其中,所述段集合中的每个段对应于所述时间序列数据的时间周期,并且其中,为了将所述时间序列数据划分成所述段集合,所述处理设备:

基于每个时间周期的时间序列数据的值和每个时间周期的时间序列数据的一个或更多个季节性分量来识别所述段集合中的每个段。

条款19.根据条款15所述的非暂时性计算机可读介质,其中,所述属性模型包括季节性分量检测模块,所述季节性分量检测模块包括自然语言处理算法,并且所述处理设备还使用所述自然语言处理算法从所述时间序列数据中提取所述特征集。

条款20.根据条款15所述的非暂时性计算机可读介质,其中,所述属性模型包括自动数据清理模块,并且所述处理设备还:

使用所述自动数据清理模块从所述时间序列数据中过滤任何趋势、阶跃变化和噪声。

条款21.根据条款20所述的非暂时性计算机可读介质,其中,为了从所述时间序列数据中过滤任何趋势、阶跃变化和噪声,所述处理设备:

识别所述时间序列数据的当前段;

基于所述当前段的时间序列数据的值和所述当前段的时间序列数据的一个或更多个季节性分量来确定所述时间序列数据的当前上下文;

基于所述时间序列数据的当前上下文确定对所述时间序列数据的调整;以及

将所述调整应用于所述时间序列数据。

附图简述

通过参考以下结合附图进行的描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制本领域技术人员在不脱离所描述的实施例的精神和范围的情况下可以对所描述的实施例做出的形式和细节上的任何改变。

图1是示出根据本公开的一些实施例的示例系统的框图。

图2是示出根据本公开的一些实施例的示例时间序列预测模型的框图。

图3是示出根据本公开的一些实施例的示例时间序列数据的图。

图4A-图4D是示出根据本公开的一些实施例的时间序列数据的变化和属性模型的对应输出的图形。

图5是根据本公开的一些实施例的,用于使用基于经修改的梯度提升决策树(GBDT)的算法执行时间序列预测的方法的流程图。

图6是根据本公开的一些实施例的示例计算设备的框图,该示例计算设备可以执行本文描述的一个或更多个操作。

详细描述

时间序列预测是时间序列分析中的一项常见任务,也是数据分析师最常使用的功能之一。许多数据提供商都有内置的预测支持,该支持基于当前使用的许多算法中的任何一种,诸如指数平滑、ARIMA和Prophet。然而,获得准确的预测是具有挑战性的,并且当前用于时间序列预测的许多算法具有相当大的缺点。例如,许多算法只能拟合线性趋势或者只能拟合一个季节性分量,这在大多数用例中是无效的假设。其他算法训练速度慢,并且会消耗大量内存,同时也缺乏诸如支持多个季节性分量和假日效应的功能。此外,许多算法的准确性相对较低,除非它们利用领域知识和ML专业知识进行调节。

本公开的实施例提供了一种快速(实时)且准确的时间序列预测算法。时间序列预测算法是一种基于梯度提升决策树(GBDT)的算法,其支持多季节性分量检测、自动数据清理、单向特征权重调整、线性趋势外推、假日效应、缺失数据鲁棒性、多变量预测和自动超参数调节。处理设备可以使用包括属性模型和趋势检测模型的时间序列预测模型来分析时间序列数据集。属性模型可以包括基于经修改的GBDT的算法。分析时间序列数据集包括确定该时间序列数据集的特征集,该特征集包括周期性分量以及任意分量。可以使用趋势检测模型来确定时间序列数据集的趋势,并且可以组合特征集和趋势以生成时间序列预测。

图1是示出示例系统100的框图。如图1所示,系统100包括计算设备110和多个计算设备112。计算设备110和112可以经由网络140彼此耦合(例如,可以操作地耦合、通信地耦合,可以彼此传送数据/消息)。网络140可以是公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))或其组合。在一个实施例中,网络140可包括有线或无线基础设施,该基础设施可以由一个或更多个无线通信系统和/或无线运营商系统提供,该一个或更多个无线通信系统诸如是利用网络140连接的WiFi

如图1所示,存储器120可以包括时间序列预测模块120A,该时间序列预测模块120A可以由处理设备115执行,以便执行本文描述的一些或所有功能。

图2示出了根据本公开的一些实施例的时间序列预测模块120A。时间序列预测模块可以包括2个主要组件,属性模型130和趋势检测模型140。属性模型130可以捕获输入时间序列数据的特征(本文中也称为季节性分量),而趋势检测模型140捕获输入时间序列数据内的趋势。时间序列预测模型120A可以是加性模型(additive model),其组合属性模型130的输出(特征)和趋势检测模型140的输出(趋势)以生成最终的时间序列预测/预计。

属性模型130可以包括回归模型130A,该回归模型130A已经被修改以执行时间序列预测,如本文进一步详细讨论的。例如,回归模型130A可以包括被设计为高效、灵活和可移植的优化的分布式梯度提升库。回归模型130A可以在梯度提升框架下实现机器学习算法。回归模型130A可以提供并行树提升(也称为GBDT,或梯度提升机(GBM)),该并行树提升以快速且准确的方式解决了许多数据科学问题(特别是对于表格数据)。

属性模型130可以使用任何适当的数据集来训练。训练数据集可以包括不同观察频率(例如,每年、每季度、每月、每周、每天和每小时)和来自不同领域(例如,微观、工业、宏观、金融和人口统计等)的真实世界时间序列的合集。图3示出了示例输入数据300,时间序列预测模块120A可以对该输入数据300进行操作以生成时间序列预测。输入数据300可以包括条目1-N。每个条目可以包括时间戳(如被示为“TS”的时间戳列中所示)和标签(例如,如被示为“Y”的标签列中所示的1、2、3、4)。

还参考图2,属性模型130可以用季节性分量检测模块131来修改,该季节性分量检测模块131使得属性模型130能够使用自然语言处理和/或用于从输入数据中提取特征的任何其他适当方式来从输入数据中提取特征。在图2和图3的示例中,属性模型130可以从输入数据300的时间戳列中提取所有可能的季节性分量作为特征。例如,一天中的一个小时、一周中的一天、一年中的一周、一个月中的一天和一年中的一个月。在操作期间,季节性分量检测模块131可以允许属性模型130根据检测到的模式的强度来调整所提取特征的权重。因此,与使用固定季节性周期(period)的其他算法相比,属性模型130可以以高准确性检测自然周期。例如,季节性分量检测模块131可以考虑到一年中每个月的不同天数,而不是简单地假设每个月是固定的天数。

输入时间序列数据还可以包括趋势、阶跃变化和噪声(即,非季节性分量)。在检测季节性分量之前,从输入数据(时间序列数据)中剥离这些非季节性分量是至关重要的,因为非季节性分量可能会导致所有季节性分量被放大为具有大的方差,并且预测的起点可能对阶跃变化敏感,如图4A所示。如在图4A中可以看到的,输入数据线中的大的阶跃变化已经导致属性模型线的季节性分量(其本身表示季节性分量检测模块131的输出)的放大,并且还导致了预测的起点(即,属性模型线的起点)发生偏离。然而,将输入数据的季节性分量与非季节性分量分离可能具有挑战性。因此,属性模型130可以被修改以包括自动数据清理模块133,该自动数据清理模块133可以用于从输入数据中过滤所有这样的趋势、阶跃变化和噪声(非季节性分量),以便清理输入数据以进行季节性分量拟合。

在预测期间,自动数据清理模块133可以产生调整,该调整可以在进行季节性分量检测之前由属性模型130应用到输入数据,以从输入数据中去除任何非季节性分量。该调整可以由图4B中所示的输入数据过滤线来表示,该输入数据过滤线相对平坦,并且属性模型130可以将输入数据拟合到该输入数据过滤线,以去除非季节性分量并锚定起点,如图4B所示。可以看出,图4B的输入数据过滤线可以非常类似于输入数据的第二段的特性,输入数据的该第二段对应于在阶跃变化之后(例如,2016年3月17日-2016年4月17日)接收的一段输入数据,而不是从2016年1月15日接收的所有输入数据。这是因为自动数据清理模块133可以连续分析输入数据以感测/识别输入数据的当前“上下文”,并基于当前上下文连续更新/修改调整/输入数据过滤线(例如,连续执行自适应的重新上下文化(re-contextualization))。输入数据的当前上下文可以指输入数据的当前段的特性,包括当前段的数据点的值(例如,当前段的数据点的平均值)和/或从当前段的数据点中提取的季节性分量/特征。自动数据清理模块133可以基于当前上下文(例如,当前段的数据点的平均值,以及例如,从当前段的数据点序列中提取的季节性分量/特征的公共模式)来生成调整/输入数据过滤线。

参考图4B,自动数据清理模块133可以开始分析开始于2016年1月15日和2016年2月1日的输入数据,可以确定到目前为止分析的数据点的平均值是4000(并且所有或大多数数据点距离4000在值阈值内),并且可以确定季节性分量,如图4B中所示。自动数据清理模块133可以确定输入数据的从2016年1月15日到2016年2月1日的第一段包括距离4000在值阈值内的值,并且第一段的季节性分量拟合公共模式(即,在季节性分量阈值内)。自动数据清理模块133可以基于第一段的数据点序列的值(例如,平均值)和/或季节性分量/特征(例如,季节性分量/特征的平均值)来确定输入数据的当前上下文。随着自动数据清理模块133继续分析输入数据,它可以确定一直到2016年3月16日的输入数据的值距离4000在值阈值内,并且从一直到2016年3月16日的输入数据中提取的季节性分量距离从2016年1月15日与2016年2月1日之间的输入数据中提取的季节性分量在季节性分量阈值内。因此,自动数据清理模块133可以确定第一段也可以包括一直到2016年3月16日的输入数据。应当注意,可以分析输入数据以使用任何适当的频率/粒度(例如,每小时、每天、每周)和任何适当的准确性水平来确定输入数据的新段是否已经开始(以及因此是否必须更新当前上下文)。例如,可以设置值阈值和季节性分量阈值,使得只有输入数据的在值上彼此非常接近并导致非常一致的季节性分量的数据点才可以被识别为输入数据的一个段。

继续图4B的示例,在2016年3月17日,自动数据清理模块133可以确定数据点的值的变化和/或季节性分量的变化超出了它们相应的阈值,并因此确定从2016年3月17日开始的输入数据对应于输入数据的新段(第二段),并相应地更新当前上下文。更具体地,由回归模型130A生成的决策树将具有对应于输入数据的在大的阶跃变化之前(例如,在2016年3月17日之前)、在4000值附近的数据点的一个或更多个分支,以及对应于输入数据的在大的阶跃变化之后(例如,在2016年3月17日或之后)、在2400值附近的数据点的一个或更多个分支。自动数据清理模块133可以分析在大的阶跃变化之前和之后的分支,并感测到输入数据的上下文在大的阶跃变化之后已经急剧改变。

自动数据清理模块133可以基于输入数据的第二段的特性来重新计算当前上下文,输入数据的第二段的特性包括例如在大的阶跃变化之后的输入数据的数据点的平均值以及在大的阶跃变化之后的输入数据的季节性分量(例如,其中的公共模式)。在应该执行时间序列预测的时候(例如,在2016年4月16日),自动数据清理模块133然后可以基于输入数据的(基于第二段的)当前上下文生成/修改输入数据过滤线(即,对输入数据的调整)。回归模型130A可以将输入数据拟合到输入数据过滤线,以便从输入数据中去除诸如趋势、阶跃变化和噪声的非季节性分量的影响。

尽管时间序列预测对输入数据的新鲜度很敏感(即,数据越新,它应该获得越大的权重),但手动调整被应用于输入数据的不同段的权重可能具有挑战性。因为属性模型130是单向的基于树的模型,所以在预测期间,从输入数据的较旧的段学习的模式可以被丢弃或具有分配给它们的较小的权重,而输入数据的较新的段可以被分配较大的权重。因此,属性模型130可以用单向权重调整模块135来修改,该单向权重调整模块135可以利用属性模型130的树结构的单向性质来基于公共模式自动地将整个输入数据分成多个段(如上面关于自动数据清理模块133所讨论的),并且以这样的方式将权重应用于每个段,使得越近期的输入数据的段,当用于预测时它被分配越大的权重。在一些实施例中,单向权重调整模块135可以以类似于自动数据清理模块133用来确定输入数据的当前上下文的方式,基于公共模式确定不同的段。尽管不太近期的段被丢弃/被分配较低的权重,但一些公共模式(例如,季节性分量)将被保留。这也有助于缺失值填补(imputation)。基于上面的讨论,可以得出结论,当属性模型130正在确定输入数据的特征时,自动数据清理模块133的输出(即,输入数据过滤线)通常可以被给予更大的权重。

假日(例如,圣诞节、感恩节)可能对时间序列数据模式有显著影响。属性模型130可以以两种方式处理假日。首先,属性模型130可以例如使用热编码的假日将每个假日明确地表示为额外特征。其次,属性模型130可以隐式地依赖于现有的时间戳导出的特征。例如,属性模型130可以利用“一周中的一天”和“一年中的一周”特征来捕获“马丁·路德·金日(Martin Luther King Jr.Day)”。

在诸如属性模型130的树算法中,在训练期间学习缺失值的分支方向。因此,属性模型130可以包括从输入数据填充缺失数据值的能力。在一些实施例中,属性模型130可以忽略缺失的时间戳。

如本文所讨论的,属性模型130的输出可以对应于随时间变化的输入数据(时间序列数据)的特征。尽管属性模型130擅长捕获特征,但是它不具有外推能力。如在图4C中可以看到的,属性模型130可以从输入数据中提取适当的特征(如属性模型线与输入数据线相比较所示),但是不能检测输入数据正在遵循的特定趋势(将属性模型线的方向与实际输出线进行比较)。因此,趋势检测模型140可以包括可用于预测自变量和因变量(例如,分别为时间和标签列的值)之间的关系并对该关系进行建模的任何适当算法。例如,趋势检测模型140可以包括线性回归算法,该线性回归算法将趋势线确定为例如使与输入数据的平方偏差之和最小化的唯一线。在其他示例中,趋势检测模型140可以包括指数趋势算法或阻尼趋势算法。

一旦属性模型130已经提取了输入数据的特征,例如季节性分量(如图4C的属性模型线所示),并且趋势检测模型140已经确定了输入数据的趋势(如图4C的趋势线所示),时间序列预测模型120A就可以组合这两个输出以形成如图4D所示的时间序列预测。

本公开的实施例还支持自动特征(也称为超参数)选择调节。特征选择调节可以帮助改进时间序列预测模型120A的性能。特征的示例可以包括时间戳导出的特征、提升模型中树的数量、训练期间每棵树的最大步长以及线性趋势训练范围(horizon)。更具体地,时间序列预测模型120A可以使用试错法来尝试不同的特征集,以找到导致时间序列预测模型120A的输出中的最小误差量的特征集。特性调节要求将训练数据拆分成训练集、评估集,有时还拆分成测试集,以进行性能验证。一些常见的技术包括保留集验证(hold-out-setvalidation)、k折交叉验证(k-fold cross validation),以及假设测试集与训练集符合相同的分布。在时间序列建模中,这种数据集拆分始终基于时间戳顺序拆分。因为与随机拆分相比,用顺序拆分更难保证相同的分布,所以准确性的提高也可能更难保证。本公开的实施例还通过允许外生变量来支持多变量时间序列预测。在一些实施例中,时间序列预测模型120A可以提供预测区间支持、(除了对线性趋势的支持以外还)对逻辑趋势的支持以及差分功能。

图5是根据本公开的一些实施例的使用基于经修改的梯度提升决策树(GBDT)的算法来执行时间序列预测的方法500的流程图。方法500可由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或它们的组合。在一些实施例中,方法500可以由计算设备(例如,执行如图2中所示的时间序列预测模型120A的计算设备110)来执行。

还参考图2,在块505处,时间序列预测模块120A可以分析输入时间序列数据(输入数据),时间序列预测模块120A可以包括2个主要组件,属性模型130和趋势检测模型140。在块510处,属性模型130可以使用自然语言处理和/或用于从输入数据中提取特征的任何其他适当方式来(经由季节性分量检测模块131)从输入数据中提取特征。在图2和图3的示例中,属性模型130可以从输入数据300的时间戳列中提取所有可能的季节性分量作为特征。例如,一天中的一个小时、一周中的一天、一年中的一周、一个月中的一天和一年中的一个月。在操作期间,季节性分量检测模块131可以允许属性模型130根据检测到的模式的强度来调整所提取特征的权重。因此,与使用固定季节性周期的其他算法相比,属性模型130可以以高准确性检测自然周期。例如,季节性分量检测模块131可以考虑到一年中每个月的不同天数,而不是简单地假设每个月是固定的天数。

输入时间序列数据还可以包括趋势、阶跃变化和噪声(即,非季节性分量)。在检测季节性分量之前,从输入数据(时间序列数据)中剥离这些非季节性分量是至关重要的,因为这种非季节性分量可能会导致所有季节性分量被放大为具有大的方差,并且预测的起点可能对阶跃变化敏感,如图4A所示。如在图4A中可以看到的,输入数据线中的大的阶跃变化已经导致属性模型线的季节性分量(其本身表示季节性分量检测模块131的输出)的放大,并且还导致了预测的起点(即,属性模型线的起点)发生偏离。然而,将输入数据的季节性分量与非季节性分量分离可能具有挑战性。因此,属性模型130可以被修改以包括自动数据清理模块133,该自动数据清理模块133可以用于从输入数据中过滤所有这样的趋势、阶跃变化和噪声(非季节性分量),以便清理输入数据以进行季节性分量拟合

在预测期间,自动数据清理模块133可以产生调整,该调整可以在进行季节性分量检测之前由属性模型130应用到输入数据,以从输入数据中去除任何非季节性分量。该调整可以由图4B中所示的输入数据过滤线来表示,该输入数据过滤线相对平坦,并且属性模型130可以将输入数据拟合到该输入数据过滤线,以去除非季节性分量并锚定起点,如图4B所示。可以看出,图4B的输入数据过滤线可以非常类似于输入数据的第二段的特性,输入数据的该第二段对应于在阶跃变化之后(例如,2016年3月17日-2016年4月17日)接收的一段输入数据,而不是从2016年1月15日接收的所有输入数据。这是因为自动数据清理模块133可以连续分析输入数据以感测/识别输入数据的当前“上下文”,并基于当前上下文连续更新/修改调整/输入数据过滤线(例如,连续执行自适应的重新上下文化)。输入数据的当前上下文可以指输入数据的当前段的特性,包括当前段的数据点的值(例如,当前段的数据点的平均值)和/或从当前段的数据点中提取的季节性分量/特征。自动数据清理模块133可以基于当前上下文(例如,当前段的数据点的平均值,以及例如,从当前段的数据点序列中提取的季节性分量/特征的公共模式)来生成调整/输入数据过滤线。

尽管时间序列预测对输入数据的新鲜度很敏感(即,数据越新,它应该获得越大的权重),但手动调整被应用于输入数据的不同段的权重可能具有挑战性。因为属性模型130是单向的基于树的模型,所以在预测期间,从输入数据的较旧的段学习的模式可以被丢弃或具有分配给它们的较小的权重,而输入数据的较新的段可以被分配较大的权重。因此,属性模型130可以用单向权重调整模块135来修改,该单向权重调整模块135可以利用属性模型130的树结构的单向性质来基于公共模式自动地将整个输入数据分成多个段(如上面关于自动数据清理模块133所讨论的),并且以这样的方式将权重应用于每个段,使得越近期的输入数据的段,当用于预测时它被分配越大的权重。在一些实施例中,单向权重调整模块135可以以类似于自动数据清理模块133用来确定输入数据的当前上下文的方式,基于公共模式确定不同的段。尽管不太近期的段被丢弃/被分配较低的权重,但是一些公共模式(例如,季节性分量)将被保留。这也有助于缺失值填补。基于上面的讨论,可以得出结论,当属性模型130正在确定输入数据的特征时,自动数据清理模块133的输出(即,输入数据过滤线)通常可以被给予更大的权重。

属性模型130的输出可以对应于随时间变化的输入数据(时间序列数据)的特征。尽管属性模型130擅长捕获特征,但是它不具有外推能力。如在图4C中可以看到的,属性模型130可以从输入数据中提取适当的特征(如属性模型线与输入数据线相比较所示),但是不能检测输入数据正在遵循的特定趋势(将属性模型线的方向与实际输出线进行比较)。因此,在块515处,趋势检测模型140可以预测自变量和因变量(例如,分别是时间和标签列的值)之间的关系并对该关系进行建模。例如,趋势检测模型140可以将趋势线确定为使与输入数据的平方偏差之和最小化的唯一线。

一旦属性模型130已经提取了输入数据的特征,例如季节性分量(如图4C的属性模型线所示),并且趋势检测模型140已经确定了输入数据的趋势(如图4C的趋势线所示),时间序列预测模型120A就可以组合这两个输出以形成如图4D所示的时间序列预测。

图6示出了计算机系统600的示例形式的机器的图解表示,在该计算机系统600内的一组指令用于使机器执行本文所讨论的用于执行时间序列预测的方法中的任何一种或更多种方法。

在替代实施例中,机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网或互联网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备(web appliance)、服务器、网络路由器、交换机或桥接器、集线器、接入点、网络访问控制设备或能够(顺序地或以其他方式)执行一组指令的任何机器,该一组指令指定要由该机器采取的动作。此外,虽然仅示出了单个机器,但术语“机器”还应被理解为包括机器的任意集合,这些机器单独或关联地执行一组(或多组)指令以执行本文所讨论方法中的任何一种或更多种方法。在一个实施例中,计算机系统600可以表示服务器。

示例性计算机系统600包括处理设备602、主存储器604(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM))、静态存储器605(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备618,它们经由总线630彼此通信。本文所描述的在各种总线上提供的任何信号可以与其他信号进行时间复用并通过一条或更多条公共总线被提供。此外,在电路组件或块之间的互连可以被示为总线或单信号线。总线中的每条总线可以可选地是一条或更多条单信号线,并且单信号线中的每条单信号线可以可选地是总线。

计算设备600还可以包括可以与网络620通信的网络接口设备607。计算设备600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如键盘)、光标控制设备614(例如鼠标)和声音信号生成设备615(例如扬声器)。在一个实施例中,视频显示单元610、字母数字输入设备612和光标控制设备614可以组合成单个组件或设备(例如,LCD触摸屏)。

处理设备602表示一个或更多个通用处理设备,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集组合的处理器。处理设备602还可以是一个或更多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备602被配置成执行时间序列预测指令625,以执行本文讨论的操作和步骤。

数据存储设备618可以包括机器可读存储介质628,在该介质上存储有体现本文描述的功能的方法中的任何一种或更多种方法的时间序列预测指令625的一个或更多个集合(例如,软件)。在计算机系统600执行时间序列预测指令625期间,该时间序列预测指令625还可以完全或至少部分地驻留在主存储器604内或在处理设备602内;主存储器604和处理设备602也构成机器可读存储介质。时间序列预测指令625还可以经由网络接口设备607通过网络620发送或接收。

机器可读存储介质628还可以用于存储指令,以在没有服务器侧支持的情况下经由客户端侧API执行用于指定流处理拓扑(动态创建主题、与这些主题交互、合并主题、从主题中读取以及从中获得动态见解)的方法,如本文所述。尽管机器可读存储介质628在示例性实施例中被示为单个介质,但是术语“机器可读存储介质”应该被认为包括存储一组或更多组指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,软盘);光学存储介质(例如,CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM);闪存;或适合于存储电子指令的另一种类型的介质。

除非另有明确说明,否则诸如“接收”、“路由”、“更新”、“提供”等的术语是指由计算设备执行或实现的动作和过程,该动作和过程将表示为计算设备的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似表示为计算设备存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。此外,如本文中所使用的,术语“第一”、“第二”、“第三”、“第四”等是指用于区分不同元件的标签,并且不一定具有根据它们的数字名称的序数含义。

本文描述的示例还涉及用于执行本文描述的操作的装置。该装置可以被特殊地构造用于所需目的,或者它可以包括由存储在计算设备中的计算机程序选择性地编程的通用计算设备。此类计算机程序可以被存储在计算机可读的非暂态存储介质中。

本文描述的方法和说明性示例与任何特定计算机或其他装置不是固有地相关。可以根据本文描述的教导来使用各种通用系统,或者可以证明构造更专用的装置以执行所需的方法步骤是方便的。各种这些系统的所需结构将如上面的描述中所阐述的那样出现。

以上描述旨在是说明性的,而不是限制性的。尽管已经参考特定的说明性示例描述了本公开,但是将认识到,本公开不限于所描述的示例。本公开的范围应参考所附权利要求书以及权利要求书所赋予的等效物的全部范围来确定。

如本文中所使用的,单数形式“一(a)”、“一个(an)”和“该(the)”也意图包括复数形式,除非上下文另外明确指出。将进一步理解的是,当在本文中使用时,术语“包括(comprises)”、“包括(comprising)”、“包含(includes)”和/或“包含(including)”指定存在所述特征、整数、步骤、操作、元素和/或组件,但不排除一个或更多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。因此,本文所使用的术语仅出于描述特定实施例的目的,而无意于进行限制。

还应注意,在某些替代实现中,提到的功能/动作可能不按照图中提到的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个图实际上可以基本上同时执行,或者有时可以以相反的顺序执行。

尽管以特定顺序描述了方法操作,但是应该理解,可以在所描述的操作之间执行其他操作,可以调整所描述的操作,使得它们在稍微不同的时间发生,或者所描述的操作可以分布在允许处理操作在与处理相关联的各种间隔处发生的系统中。

各种单元、电路或其他组件可以被描述或要求为“被配置成”或“可配置成”执行一个或更多个任务。在此类上下文中,短语“被配置成”或“可配置成”用于通过指示单元/电路/组件包括在操作期间执行一个或更多个任务的结构(例如,电路)来表示结构。这样,即使当指定的单元/电路/组件当前不工作(例如,未接通)时,也可以说该单元/电路/组件被配置成执行任务,或者可配置成执行任务。与“被配置成”或“可配置成”语言一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行以实现操作的程序指令的存储器等。声明单元/电路/组件“被配置成”执行一个或更多个任务,或者“可配置成”执行一个或更多个任务,显然不旨在针对该单元/电路/组件调用35U.S.C.112第六段。另外,“被配置成”或“可配置成”可以包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵来以能够执行讨论中的任务的方式操作的通用结构(例如,通用电路)。“被配置成”还可包括使制造过程(例如,半导体制造设施)适应于制造适于实现或执行一个或更多个任务的设备(例如,集成电路)。明确表示“可配置成”不适用于空白介质、未编程的处理器或未编程的通用计算机、或未编程的可编程逻辑设备、可编程门阵列或其他未编程的设备,除非伴随有赋予未编程设备被配置成执行所公开的功能的能力的编程的介质。

出于解释的目的,已经参考特定实施例描述了前述描述。然而,上面的说明性讨论并不意欲为无遗漏的或将本发明限制到所公开的精确形式。鉴于上述教导,许多修改和变化都是可能的。选择和描述这些实施例是为了最好地解释实施例的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用实施例以及如可以适合于预期的特定用途的各种修改。因此,本实施例应被认为是说明性的而不是限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求的范围和等效物内进行修改。

相关技术
  • 一种提升时间序列预测系统预测时间序列效果的方法
  • 时间序列预测模型的训练方法、时间序列预测方法及装置
技术分类

06120116503108