基于分布式聚类的网络流量时间序列预测方法与流程

文档序号:11520294阅读:405来源:国知局
基于分布式聚类的网络流量时间序列预测方法与流程

本发明涉及网络流量监控技术领域,具体涉及基于分布式聚类的网络流量时间序列预测方法。



背景技术:

在网络流量监控领域中,对网络流量时序数据进行分析和预测非常重要。目前已有的解决方案包括差分移动平均自回归模型(autoregressiveintegratedmovingaveragemodel),多层感知器(multilayerperceptron),时间递归神经网络(recurrentneuralnetwork),长短期记忆人工神经网络(long-shorttermmemory),基于聚类时序预测等技术作为可能的解决方案已经有大量的研究。从使用成本、精度、能耗以及可扩展性进行比较和衡量,我们可以分析得到基于聚类的时序预测方法在线上环境具有更好的优越性,聚类方法是数据挖掘中的一个重要的领域,聚类方法极易扩展到分布式系统上,能够成为低成本高效率的优选方案。

主流的时序预测算法包括差分移动平均自回归模型,多层感知器,时间递归神经网络,长短期记忆人工神经网络等技术。这些主流技术在用于时序数据平缓,上升下降稳定的情况下效果较好,在分析预测波动较大,随机性较强的网络流量时序数据时,会造成预测效果和预测精度的持续下降。同时,在实际使用中,时间递归神经网络,长短期记忆人工神经网络等技术计算量大,耗时长,不适合用于实时环境。



技术实现要素:

本发明的目的在于克服现有技术存在的上述不足,提供基于分布式聚类的网络流量时序预测方法,使用基于分布式聚类的预测模型,能够通过横向扩展分布式系统得到性能的提高,成本低,性能好,为了解决预测波动较大的网络流量时序数据,结合自回归模型对预测结果进行修正,极大地减少预测值的误差,提高预测精度。

本发明通过如下技术方案实现。

1.基于分布式聚类的网络流量时序预测方法,其技术方案的实现是分为两个阶段,分别是训练阶段和预测阶段。训练阶段中将历史的数据进行聚类的训练,训练结束后,进入预测阶段,在预测阶段中,将待预测的时间点之间的前缀数据进行计算预测值。

2.在训练阶段中将时间序列训练集数据进行预处理,使用滑动窗口的方法,划分成等长的时间片元组,以方便接下来的聚类处理。接着使用k-平均算法将时间片元组进行聚类,得到若干个聚类产生的簇。在每一个簇内,对数据进行正态拟合得到正态分布n(μ,σ2)。

3.在预测阶段中,将待预测的时间序列的前缀数据进行预处理,从而得到待预测的定长的时间序列前缀元组。使用欧式距离公式进行计算,找到聚类结果中离前缀元组最近的聚类中心μ,即是网络流量的初步的估计预测值。

4.在对多元组<t1,t2,…tn>进行聚类时,使用的是分布式的k-平均算法对时间片元组进行聚类训练得到聚类的结果,而聚类方法的分布式采用映射归纳(map-reduce)分布式扩展。

5.使用自回归模型对网络流量的初步预测值μ进行修正,修正的方法是按照给定的比例因子,将预测值μ和待预测的时间点的上一个时间节点的实际值进行线性相加,根据自回归模型对聚类中心μ进行修正获得最终的预测值。

与现有技术相比,本发明具有如下优点和技术效果:

(1)在使用k-平均算法的基础上,结合了自回归模型,使得预测结果更加精准。

基于聚类的时序预测方法融合了k-平均算法和自回归模型。单独使用k-平均算法进行时间序列数据预测结果较差,预测值通常会产生明显较大的偏差,无法使用在实际业务环境中。自回归模型的使用有很大的局限性,必须使用在具有自相关的时间序列数据上,否则无法进行精确的预测值。基于聚类的时间序列预测方法融合了k-平均算法和自回归模型,克服了各自单独使用时所存在的不足和问题,使得预测结果更为精准。

(2)对训练阶段进行分布式计算和处理,保证了对数据进行训练效率,性能高。

基于分布式聚类的时间序列预测方法,在训练阶段中,使用分布式的k-平均算法进行分布式聚类,将数据随机分发到不同的节点进行处理,能够得到处理性能的提高。通过聚类操作后,再分布式地根据聚类训练的结果进行正态拟合,这一过程是同时在不同的节点上执行的,能够保证较高地性能,减少时间的使用。

(3)对预测阶段进行分布式计算和处理,保证了预测过程的效率

基于分布式聚类的时间序列预测方法,在预测阶段中,分布式地将待预测时间点的前缀时序数据进行分布式地预处理,然后分发到节点。在节点接收到前缀时序数据,根据前缀时序数据找到最近的簇,得到初步的预测数值。在整个预测阶段中都是分布式的,因此提高了预测阶段的处理性能。

(4)系统架构采用了映射归纳(map-reduce)分布式框架,易扩展,性能高

基于分布式聚类的时间序列预测方法可以在已有的流量监控服务器的基础上进行部署和搭建,映射归纳(map-reduce)分布式框架对机器的性能要求不高,极易扩展部署到多个节点上,能够提高系统运行的并行化程度,具有成本低,性能高,运行时间少的优点。

附图说明

图1为实例中算法部署模型示意图。

图2为网络流量时序数据预处理示意图。

图3为时间片元组进行分布式聚类示意图。

图4为训练阶段流程图。

图5为预测阶段流程图。

具体实施方式

为了使本发明的技术方案及优点更加清楚明白,以下结合附图,进行进一步的详细说明,但本发明的实施和保护不限于此。

如图1、图2、图3、图4所示,基于分布式聚类的时间序列数据预测包含三个部分,1、网络流量时序数据切片;2、时间片元组聚类;3、聚类结果正态分布拟合。

本实例的系统的基本组成部分包括数据预处理层,数据分析层,预测值修正层,本算法的系统部署如图1所示,预处理阶段,将时间序列数据根据参数进行切片以元组的形式保存。

1.1网络流量时序数据切片

通过对网络流量时序数据进行切片,划分若干个不同的元组。通过给定的定长参数,记为look_back,将时序数据进行划分时间片,时间片以多元组的形式<t1,t2,…tn>进行保存,tn表示第n个时间点的具体数值,将时间片元组的下一个时间点的值tn+1作为target,从而进行组合得到二元组

其中ti为第i个时间观测值,target是预测值。

1.2时间片元组聚类

通过步骤1.1得到若干个时间片元组的集合,使用了k-平均算法聚类方法对时间片进行聚类分析。k-平均算法聚类主要分为两个步骤来进行,分别是划分和更新。在划分阶段,将每个元组划分到相应的簇中,使得簇内所有多元组达到簇的聚类中心的平方和达到最小,该平方和记为j。如下公式所示,记第i个聚类中心为记第p个时间序列元组<tp,tp+1,…tp+look_back>为xp,其中每个xp都只被分配到一个确定的簇中,表示第t次迭代的第i个聚类结果的簇,,如果有多个确定的簇,那么可以任意选中一个簇。初始化的时候随机选择k个xp作为初始化的聚类中心

在更新阶段,重新计算聚类中每一个簇的平均值,获得新的聚类中心,作为新的均值点。

这一算法将在对于所有的xp所归属的簇不再发现变化时,判断为收敛。否则判断为不收敛需要继续重复执行以上两个步骤。

因为交替进行的两个步骤使得簇内的目标函数值j逐渐减少,最终到达最小值,函数j表示某个簇的所有xp到聚类中心的距离的平方和。并且分配方案只有有限种,所以算法会收敛于某一最优解或者局部最优解。通过聚类得到了保存预测值的集合,记为settarget。

1.3聚类结果正态分布拟合

正态分布曲线拟合是一种概率曲线拟合方法,通过步骤1.2我们得到时间片元组的预测值的集合settarget,集合settarget服从数学期望为μ、方差为σ2的正态分布,记为n(μ,σ2)。通过将聚类簇的集合中的所有数据代入正态拟合曲线公式计算获得μ,σ。μ即是初步估计预测值。

进一步地,通过步骤1.3得到预测值存在较大的误差,为了减少误差,使用自回归模型对预测值进行修正。自回归模型的通用公式如下所示:

其中:c是常数项;εt被假设为平均数等于0,标准差等于σ的随机误差值;σ被假设为对于任何的t都不变。从逻辑上理解,xt的预测值等于一个或落后若干个时间点的线性组合,以及常数项和随机误差。结合之前聚类的结果,该公式可以退化成如下公式。

μ`=(1-α)μ+αti-1

其中,μ`为修正后的预测值,α是给定的比例因子,可以取值0.6到0.9之间,μ是初步预测值,ti-1为i-1时间点实际观测值。

如图4所示,在算法流程的训练阶段,网络流量监控系统将网络流量时序数据通过预处理层进行分片预处理,得到分片时间序列元组,将网络流量时间序列分片元组通过分布式聚类层进行处理,得到聚类结果,将聚类结果进行正态拟合获得估计预测值。如图5所示,在算法流程的预测阶段,从网络流量监控系统接收到待预测的网络流量的前缀时序数据,通过预处理层进行分片预处理,获得定长的前缀时序数据,通过分布式计算找到匹配的聚类簇,获得初步的预测值,结合自回归模型进行误差修正,得到最终的预测值。

本预测方法能够在网络流量监控服务器的基础上进行扩展。如图1所示,架构分为三层分别为数据预处理层、聚类处理层以及拟合修正层。数据预处理层获取来自网络流量监控服务器的时间序列数据,并对时间序列数据进行定长的数据预处理操作。聚类处理层将经过预处理的数据进行聚类分析,并获得初步预测值。拟合修正层能够对预测数据进行修正。

数据预处理层的具体实现是,分布式地从网络流量监控服务器获取时间序列<t1,t2,…tn>,随机切分时间序列数据并分发到不同的计算节点,经过预处理获得定长的时间序列数据元组。

在聚类处理层中,时间序列元组通过map层(映射层)的时候,分布式地计算元组与均值中心距离,将元组分发到距离最近的reduce层(归纳层),reduce层的阶段中分布式地重新计算均值中心。将map和reduce两个阶段的交替执行。由于交替进行的两个步骤都会减小函数的值,因此目标函数会收敛,在reduce层保存稳定收敛的集合结果,如果目标函数暂时不收敛,可以重新选择聚类中心并重新交替以上两个步骤。

在拟合修正层中,通过map层(映射层)分布式地从预处理层获取经过处理的待预测数据的时间点的前缀时间序列数据,在reduce层(归纳层)中分布式地从map层(映射层)获取前缀时间序列数据,通过计算最近的聚类中心并获取了初步的预测值,通过自回归模型对预测值进行修正,获得最终的预测值结果。

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