生成负载预测模型的方法、装置、设备和存储介质与流程

文档序号:25238118发布日期:2021-06-01 14:35阅读:93来源:国知局
生成负载预测模型的方法、装置、设备和存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种生成负载预测模型的方法、装置、设备和存储介质。



背景技术:

随着云计算技术的发展,越来越多的用户选择将业务部署或迁移到基于云架构的平台。利用云计算技术,分配到特定业务的计算、存储、网络等资源可以按需进行增加或者减少,从而最大化资源利用率,降低业务的运营成本。

然后,云计算场景业务种类繁多,很难针对每一业务准确预测运行情况;因此,急需一种能够在复杂的环境下准确预测的方法。



技术实现要素:

本发明实施例提供了一种生成负载预测模型的方法、装置、设备和存储介质,用以解决复杂环境下预测预测准确率低的问题。

根据本发明实施例的第一方面,提供一种生成负载预测模型的方法,该方法可以包括:

采集目标机器的负载时序数据;

根据采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;

基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。

根据本发明实施例的第二方面,提供一种负载预测的方法,该方法包括:

获取待测负载时序数据;

基于待测负载时序数据的特征,确定待测负载时序数据的类别;

利用上述的负载预测模型中与类别对应的模型,对待测负载时序数据进行预测,得到负载预测结果。

根据本发明实施例的第三方面,提供一种生成负载预测模型的装置,该装置可以包括:

采集模块,用于采集目标机器的负载时序数据;

划分模块,用于根据采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;

构建模块,用于基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。

根据本发明实施例的第四方面,提供一种负载预测的装置,该装置包括:

获取模块,用于获取待测负载时序数据;

确定模块,用于基于待测负载时序数据的特征,确定待测负载时序数据的类别;

预测模块,用于利用上述的负载预测模型中与类别对应的模型,对待测负载时序数据进行预测,得到负载预测结果。

根据本发明实施例的第五方面,提供一种计算设备,计算设备包括:至少一个处理器、至少一个存储器以及至少一个计算机程序,其中,计算机程序被存储在存储器中,计算机程序包括指令,处理器用于执行计算机程序,以使计算设备实现如第一方面所示的方法。

根据本发明实施例的第六方面,提供一种计算设备,计算设备包括:至少一个处理器、至少一个存储器以及至少一个计算机程序,其中,计算机程序被存储在存储器中,计算机程序包括指令,处理器用于执行计算机程序,以使计算设备实现如第二方面所示的方法。

根据本发明实施例的第七方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述各方面的生成负载预测模型的方法。

根据本发明实施例的第八方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述各方面的负载预测的方法。

在本发明实施例中披露的生成负载预测模型的方法,通过采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;并基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。从而针对至少两类数据集分别构建对应的用于负载预测的模型,一方面能提高预测准确率,另一方面也提高了预测速度。

附图说明

从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。

图1为本发明实施例的一种生成负载预测模型的方法流程图;

图2为本发明实施例的另一种生成负载预测模型的流程图;

图3为本发明实施例的一种负载预测的方法的流程图;

图4为本发明实施例的另一种负载预测的方法的流程图;

图5为本发明实施例的生成负载预测模型的装置示意图;

图6为本发明实施例的负载预测的装置的示意图;

图7为本发明实施例的计算设备示意性框图。

具体实施方式

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

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

下面结合附图,对本说明书提供的方案进行详细描述。

图1为本发明实施例的一种生成负载预测模型的方法流程图。如图1所示,该生成负载预测模型的方法可以包括:

s110:采集目标机器的负载时序数据;

s120:根据采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;

s130:基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。

在本发明实施例中披露的生成负载预测模型的方法,通过采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;并基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。从而针对至少两类数据集分别构建对应的用于负载预测的模型,一方面能提高预测准确率,另一方面也提高了预测速度。

在本发明实施例中,s110包括:

利用xgboost(extremegradientboosting)和/或多元线性回归模型对至少两类数据集中的每一类数据集分别进行拟合,得到每一类数据集对应的用于负载预测的模型。

在本发明实施例中,s120包括:

根据采集的负载时序数据的特征,采用方差检测、周期性检测和聚类中的一种或多种,将采集的负载时序数据划分为至少两类数据集。

本发明实施例,通过采用统计特征、频域周期性性和聚类中的一种或多种,对采集的负载时间序列数据进行划分,并在划分之后针对不同类别的负载时序数据构建对应的负载预测模型,从而提升了负载预测的精度。

在本发明实施例中,在s110之后,该生成负载预测模型的方法,还包括:

对采集的负载时序数据进行滑窗处理,得到多个滑窗负载序列。

在本发明实施例中,在得到滑窗负载预测数据之后,s120包括:

对多个滑窗负载序列进行第二次方差检测。

其中,对采集的负载时序数据进行滑窗处理,得到多个滑窗负载序列,包括:

对采集的负载时序数据进行第一次方差检测;

将采集的负载时序数据中第一次方差检测结果不符合第一设条件的负载时序数据进行滑窗处理,得到多个滑窗负载序列。

需要说明的是,可以基于多个滑窗负载序列构建数据集。

在本发明实施例,在对采集的负载时序数据进行方差检测之后,s120包括:

将采集的负载时序数据中第一次方差检测结果符合第一预设条件的负载时序数据划分为至少两类数据集中的第一类数据集。

在本发明实施例,在进行滑窗处理之后,该生成负载预测模型的方法,还包括:

对多个滑窗负载序列进行周期性检测;

将多个滑窗负载序列中具有周期性的滑窗负载序列划分为至少两类数据集中的第二类数据集。

其中,对多个滑窗负载序列进行周期性检测,包括:

将多个滑窗负载序列转换为对应的负载频域;

在每一个滑窗负载序列的主频率的个数小于第一预设阈值,且主频率与所有频率的比值大于第二预设阈值的情况下,确定每一个滑窗负载序列具有周期性。其中,主频率与所有频率的比值可以为主频率的信号强度与所有频率的信号强度的比值。

在本发明实施例,在进行第二次方差检测之后,该生成负载预测模型的方法,还包括:

对多个滑窗负载序列中不符合第二预设条件的滑窗负载序列(为了方便叙述,下文中简称不符合第二预设条件的负载时序数据)进行周期性检测;

将不符合第二预设条件的滑窗负载序列中具有周期性的多个滑窗负载序列划分为至少两类数据集中的第三类数据集。

需要说明的是,第二类数据集和第三类数据集中的负载时序数据具有周期性。

其中,对不符合第二预设条件的滑窗负载序列进行周期性检测,包括:

将不符合第二预设条件的滑窗负载序列转换为对应的负载频域;

在每一个不符合第二预设条件的滑窗负载序列的主频率的个数小于第一预设阈值、主频率与所有频率的比值大于第二预设阈值的情况下,确定每一个不符合第二预设条件的滑窗负载序列具有周期性。其中,主频率与所有频率的比值可以为主频率的信号强度与所有频率的信号强度的比值。

本发明实施例,通过统计特征划分、频域周期性划分和相似性聚类多种方式对采集的负载时间序列数据做划分,针对不同类别的负载时序数据构建对应的负载预测模型,从而提升了负载预测的精度。

在本发明实施例,在对滑窗负载序列进行周期性检测之后,需要对不具有周期性的滑窗负载序列进行聚类,以便进一步提升负载预测模型的准确性。

在本发明实施例,在对滑窗负载序列进行周期性检测之后,该生成负载预测模型的方法,还包括:

对不具有周期性的滑窗负载序列进行聚类处理,得到聚类处理结果;

根据聚类处理结果,将不具有周期性的滑窗负载序列划分为至少两类数据集中的与聚类处理结果对应的不同类数据集。

其中,对不具有周期性的滑窗负载序列进行聚类处理,得到聚类处理结果,包括:

根据不具有周期性的滑窗负载序列中任两个滑窗负载序列间的距离构建距离矩阵;

将距离矩阵转换为不具有周期性的滑窗负载序列的相似度矩阵;

根据相似度矩阵中不具有周期性的滑窗负载序列间的相似度,对不具有周期性的滑窗负载序列进行聚类,得到聚类处理结果。

其中,将不具有周期性的滑窗负载序列划分为至少两类数据集中的与聚类处理结果对应的不同类数据集之后,该生成负载预测模型的方法,还包括:

对于与聚类结果对应的不同类数据集中的每类数据集,根据该类数据集中的数据值及数据量,确定针对该类数据集的类别判断基线。

本发明实施例,通过对不同类数据集提取类别判断基线,便于在负载预测阶段,能直接通过待测负载时序数据与类别判断基线间的距离,确定该待测负载时序数据的类别,进而能快速实现待测负载时序数据的类别判断;在确定该待测预测时序数据的类别之后,会采用与该类别对应的负载预测模型进行预测,进而提高了预测准确度。

在本发明实施例中,s120包括:

对采集的负载时序数据进行预处理,根据预处理后的负载时序数据的特征,将预处理后的负载时序数据划分为至少两类数据集;

其中,对采集的负载时序数据进行预处理,包括:

在采集的负载时序数据中存在负载时序数据的数据值大于上限阈值的时,设置大于上限阈值的负载时序数据的数据值为上限阈值;和/或,

在采集的负载时序数据存在负载时序数据的数据值大于下限阈值的时,设置大于下限阈值的负载时序数据的数据值为下限阈值。

在本发明实施例中,负载时序数据包括:cpu负载时序数据、网络负载时序数据或磁盘读写的负载时序数据。

在本发明实施例中,s130包括:

基于第一类数据集、第二类数据集(或第三类数据集)、以及与聚类结果对应的不同类数据集,分别构建对应的用于负载预测的模型。

需要说明的是,对于多个滑窗负载序列中符合第二预设条件的负载时序数据,如果待测负载时序数据的类别与符合第二预设条件的负载时序数据一致,后续预测的时候则直接可以采用全量数据构建的模型进行负载预测。其中,全量数据可以为所有采集的负载时序数据,全量数据构建的模型即为基于采集的负载时序数据构建的用于负载预测的模型。

需要说明的是,方差检测的次数不仅限于两次,可以根据负载预测的精度设置多次方差检测,便于更进一步提高负载预测精度。

为了方便描述,下文中以cpu负载时序数据为示例。

图2为本发明实施例的另一种生成负载预测模型的方法的流程图。如图2所示,该生成负载预测模型的方法,包括:

s201:采集目标机器的cpu负载时序数据;

本发明实施例中,s201包括:

从对象存储系统中拉取,例如,30天历史数据,该历史数据为已经小时聚合的虚拟机cpu负载时序数据,f={f1,f2,...,fn},其中,f1表示第一个虚拟机的cpu时序数据。

在实际应用中,cpu负载时序数据的数据值的取值范围为[0,100],单位为百分比;如果cpu负载时序数据中存在cpu负载时序数据的数据值在[0,100]取值范围内,则需要对数据值不在[0,100]范围内的cpu负载时序数据进行处理。

其中,有以下几种方式对数据值不在[0,100]范围内的cpu负载时序数据进行处理:

第一种方式:如公式(1)所示,如果cpu负载时序数据中存在cpu负载时序数据的数据值小于0,则将数据值小于0的cpu负载时序数据进行调整,即将该cpu负载时序数据的数据值调整为0;如果cpu负载时序数据中存在cpu负载时序数据的数据值大于100,则将数据值大于100的cpu负载时序数据进行调整,即将该cpu负载时序数据的数据值调整为100。其中,0为下限阈值,100为上限阈值。

第二种方式:如公式(2)所示,将数据值不在[0,100]的cpu负载时序数据移除,并通过下面的缺失值处理来进行填充:

其中,缺失值指的是在该时间戳上并没有相应的数据,该时间戳上的数据处于缺失或者空值状态。缺失值处理是先找到缺失值,然后对该缺失值使用线性插值方法来进行处理。

s202:对采集的cpu负载时序数据进行第一方差检测,将采集的cpu负载时序数据中第一次方差检测结果符合第一预设条件的cpu负载时序数据划分为至少两类数据集中的第一类数据集;

具体地,先将采集的cpu负载时序数据中方差小于方差阈值α1的cpu负载时序数据划分为至少两类数据集中的第一类数据集。

本发明实施例,在cpu负载时序数据前期处理阶段,可以通过基本的统计特征将采集的cpu负载时序数据进行划分,例如,可以通过基本特征方差,可以将方差较小的cpu负载时序数据(即时序数据波动范围小,不携带明显的数据特征)去掉;一方面,可以提高数据集的质量;另一方面,大量减少干扰数据量,减少构建模型时间,提高预测精度。

需要说明的是,s202中的方差检测是筛选掉方差小于α1的cpu负载时序数据,可以减少数据量,从而能够大幅度提高构建模型的速度。

s203:对采集的cpu负载时序数据中第一次方差检测结果不符合第一预设条件的cpu负载时序数据划进行滑窗处理,得到多个滑窗cpu负载序列;

具体地,对大于或等于方差阈值α1的cpu负载时序数据进行滑窗处理,得到多个滑窗cpu负载序列。

在一个示例中,窗口的大小为192(24*8,共8天)步长为1,前7天为cpu负载时序数据,最后一天用于评估预测值与真实值的偏差。

需要说明的是,可以基于滑窗之后的序列构建数据集。

s204:对多个滑窗cpu负载序列分别进行第二次方差检测,判断多个滑窗cpu负载序列中是否存在符合第二预设条件的滑窗cpu负载序列;

本发明实施例,针对多个滑窗cpu负载序列,设定方差阈值α2,求滑窗处理之后,每个滑窗cpu负载序列的方差。

对于var(fi)<α2的cpu负载序列(即符合第二预设条件的cpu负载序列),可以不单独构建负载预测模型,可以直接采用全量数据构建的模型。其中,全量数据集可以为所有采集的cpu负载时序数据。

需要说明的是,通过第二次方差检测可以过滤掉一部分的数据量(即滑窗处理后的cpu负载序列中方差小于方差阈值α2的cpu负载序列),使后续构建负载预测模型构建的速度提升一倍,以及提高了预测数据的精度。

s205:对多个滑窗cpu负载序列中不符合第二预设条件的cpu负载序列进行周期性判断;以及将具有周期性的cpu负载序列划分为至少两类数据集中的第二类数据集;

具体地,对于滑窗cpu负载序列中大于或等于α2的cpu负载序列,利用快速傅里叶变换(fft)进行转换,得到大于或等于α2的cpu负载序列的频域数据;将大于或等于α2的cpu负载序列中具有周期性的cpu负载序列划分为至少两类数据集中的第二类数据集。

在一个示例中,针对每一个大于或等于α2的cpu负载序列,在主频率的个数小于阈值a1(即第一预设阈值),且比值大于阈值b1(即第二预设阈值),则可以认定该大于或等于α2的cpu负载序列具有明显的周期性;并将具有周期性的cpu负载序列划分为至少两类数据集中的第二类数据集;

针对每一个大于或等于α2的cpu负载时序数据,在主频率的个数大于或等于阈值a1,且主频率的信号强度与所有频率的信号强度的比值小于或等于阈值b1,则可以认定该大于或等于α2的cpu负载序列不具有周期性。

需要说明的是,通过阈值a1和阈值b1的个数可以为多个,可以根据具体的预测精度进行设置。

s206:对s205中不具有周期性的cpu负载序列进行聚类处理,得到聚类处理结果;根据聚类处理结果,将不具有周期性的负载序列划分为至少两类数据集中的与聚类结果对应的不同类数据集。在图2中以类别1~类别n为示例。

具体地:根据不具有周期性的cpu负载序列中任两个cpu负载序列间的距离构建距离矩阵;

将距离矩阵转换为不具有周期性的cpu负载序列的相似度矩阵;

根据相似度矩阵中不具有周期性的cpu负载序列间的相似度,对不具有周期性的cpu负载序列进行聚类,得到聚类处理结果。

在一个示例中,采用动态时间归整(dynamictimewarping,dtw)距离作为距离度量指标,根据不具有周期性的cpu负载序列构建距离矩阵,使用核变换的方式将距离矩阵转换成相似度矩阵,最后使用谱聚类算法(spectralclustering)、聚类算法(density-basedspatialclusteringofapplicationswithnoise,dbscan)进行聚类。

本发明实施例,通过统计特征划分、频域周期性划分和dtw距离相似性聚类多种方式对采集的负载时间序列数据进行划分,并针对不同类别的负载时序数据构建对应的负载预测模型,从而大大提升负载预测的精度。

其中,距离矩阵为对称矩阵,距离矩阵中的值表示不具有周期性中任两个cpu负载序列间的距离。

需要说明的是,选择dtw距离来表示任两个cpu负载序列间的距离,能够有效衡量任两个cpu负载序列间的距离。假设,不具有周期性cpu负载序列中cpu负载序列的数量为n,则距离矩阵大小为(n*n),距离矩阵为mdistance(如公式(3)所示),其中di,j表示cpu负载序列样本i和cpu负载时序列样本j的距离。

其中,相似度矩阵为对称矩阵,相似度矩阵中的值表示任两个cpu负载序列间的相似度得分。

需要说明的是,将距离矩阵转换为相似度矩阵的方式有很多种;例如,利用高斯核函数对距离矩阵进行变换得到相似度矩阵。高斯核函数的公式为:参数σ可依据业务场景具体指定。相似度矩阵的转换公式为:sdistance=mdistance·k,其中sdistance(如公式(4)所示)即为相似度矩阵,si,j表示cpu负载时序数据样本i和cpu负载时序数据样本j的相似度得分。

本发明实施例,通过聚类,将不具有周期性的cpu负载序列基于相似度进行进一步划分至少两类数据集中的与聚类结果对应的不同类数据集;后续再针对与聚类结果对应的不同类数据集单独构建负载预测模型。

s207:聚类评估;

本发明实施例,通过聚类评估来确定s206中不同类数据集的最佳数量和聚类处理结果质量。

在一个示例中,通过聚类质量评估指标calinskiandharabazscore来衡量,得分越高则表明聚类效果越好。另外,采用聚类质量评估指标这个方法的优势是速度快。

s208:提取类别判断基线;

具体地,对于与聚类结果对应的不同类数据集中的每类数据集,根据每类数据集中的数据值即数据量,确定针对每类数据集的类别判断基线。

在一个示例中,当需要对待测负载时序数据进行预测时,分别计算待测负载时序数据与类别判断基线的距离,并取最小的距离,且在最小的距离小于或等于设定的第一距离阈值时,才可以确定待测负载时序数据与类别判断基线为同一类别;如果最小距离仍大于该阈值则判定为不属于任何一类,该阈值的确定可以依据业务场景选取。

需要说明的是,阈值的个数可以与类别判断基线的个数相同,每一类别判断基线对应的阈值不同;如果最小的距离均不满足所有的阈值则说明待测负载时序数据不属于不同类别数据集中的任何一类,后续进行预测的时候,不能采用类别数据集对应的负载预测模型进行预测;如果最小的距离满足阈值则后续进行预测数据的时候,可以采用该阈值对应的类别数据集的负载预测模型进行预测。

在一个示例中,可以在时间维度下统计每个时间戳的数据值均值或质心或重心。

为了方便描述,以均值为示例。

假设聚出c个类别c={c1,c2,c3,...,cc},每类数据集有样本数s={s1,s2,s3,...,sc},时序数据样本x={x1,x2,x3,...,xc},则类别判断基线为:

本发明实施例,通过从每类数据集中提取出一条类别判断基线,用于负载预测时,对待测负载时序数据进行类别判断。

需要说明的是,在构建负载预测模型过程中,提取类别判断基线,是为了便于后续进行负载预测的时候使用,其实,也可以在进行负载预测之前提取类别判断基线。

s209:分别构建第一类数据集、第二类数据集、以及s206中不同类数据集对应的负载预测模型。

在一个示例中,可以采用xgboost回归树模型和/或采用多元线性回归模型等传统的机器学习模型构建用于负载预测模型。

s210:模型评估。

本发明实施例,通过以下指标对负载预测模型进行评估:均方根误差(rootmeansquarederror,rmse),平均绝对百分比误差(meanabsolutepercentageerror,mape),r方(rsquared)等,能够进一步提高负载预测模型精度。

图3为本发明实施例的一种负载预测的方法的流程图。如图3所示,该负载预测的方法,包括:

s310:获取待测负载时序数据;

s320:基于待测负载时序数据的特征,确定待测负载时序数据的类别;

s330:利用负载预测模型中与类别对应的模型,对待测负载时序数据进行预测,得到负载预测结果。

在本发明实施例,通过将不同类别的待测负载时序数据分别采用对应的负载预测模型进行预测,从而提高了负载预测速度。

在本发明实施例中,s320包括:

根据待测负载时序数据的特征,采用方差检测、周期性检测和类别判断基线中的一种或多种,确定待测负载时序数据的类别。

在本发明实施例,通过采用方差检测、周期性检测和类别判断基线中的一种或多种,匹配到与待测负载时序数据对应的负载预测模型,并基于对应的负载预测模型进行预测,从而提高了负载预测速度。

在本发明实施例中,s320包括:

对待测负载时序数据进行方差检测;

确定待测负载时序数据中方差检测结果符合第三预设条件的待测负载时序数据的类别为第一类别。

本发明实施例,通过将方差检测结果小于第三预设条件的待测负载时序数据,采用第一类别对应的负载预测模型进行预测;其中,方差检测结果小于第三预设条件为:如果方差检测结果小于图2中的阈值α1,此时则采用阈值α1对应的负载预测模型进行预测;如果方差检测结果小于图2中的阈值α2,此时则采用阈值α2对应的全量数据构建的模型进行预测。

在本发明实施例中,s320包括:

对不符合第三预设条件的待测负载时序数据进行周期性检测;

确定具有周期性的待测负载时序数据的类别为第二类别。

本发明实施例,通过将方差检测结果大于或等于第三预设条件的待测负载时序数据,进行周期性检测,并将具有周期性的待测负载时序数据,即类别为第一类别的待测负载时序数据采用基于实施例2中的第二类数据集构建的负载预测模型进行预测。

在本发明实施例中,s320包括:

分别计算不具有周期性的待测负载时序数据与类别判断基线间的距离;

将距离小于第一距离阈值的待测负载时序数据的类别确定为第三类别。

本发明实施例,通过类别判断,确定待测负载时序数据与类别判断基线间之间的关系;如果第三类别与类别判断基线中一类对应上时,则采用该类数据集构建的负载预测模型进行预测。如果第三类别不与类别判断基线匹配上,则采用小于阈值α1对应的负载预测模型进行预测;或者,采用小于阈值α2对应的全量数据构建的模型进行预测。

在本发明实施例中,还需要对待测负载时序数据进行异常检测;具体包括:

对待测负载时序数据进行滑窗处理,得到多个子序列;

分别确定多个子序列中每一个子序列与多个子序列中的其他子序列的距离;

在距离大于第二距离阈值的情况下,确定与距离对应的子序列为异常子序列;其中,异常子序列包括异常数据。

本发明实施例中,在确定待测负载时序数据中的异常数据时,需要对该异常数据进行异常处理。

其中,异常处理异常数据之前,还需要确定该异常数据对负载预测结果的影响程度,并根据影响程度选择相应的方式来消除异常数据。

其中,确定异常数据对负载预测结果的影响程度,包括:

根据异常数据的数据长度、异常数据的数据幅度、以及异常数据距离测试点的距离,确定异常数据对负载预测结果的影响程度;

在影响程度大于对应的程度阈值的情况下,先异常处理该异常数据,然后再对异常处理后的待测负载时序数据进行预处理。

需要说明的是,可以在进行异常检测之前,对待测负载时序数据进行预处理,以及在对异常数据进行异常处理之后,再处理后的待测负载时序数据进行待测负载时序数据,便于提高负载预测精度。

本发明实施例,通过异常数据的数据长度、幅度以及距离预测点的远近衡量异常数据对负载预测结果的影响程度,并根据影响程度才起不同的异常数据处理方式来消除异常数据对负载预测结果的影响。

需要说明的是,异常检测是需要找出待测负载时序数据中异常数据段和/或异常点;对于单个异常点,如果单个异常点对负载预测结果的影响比较小,可以直接删除异常点然后按照缺失值的方式进行处理;对于异常数据段,如果该异常数据段对负载预测结果的影响比较大,则需要删除异常数据段按照线性插值方法进行填充,也可以采用均值处理;其中,均值处理是指去掉异常数据段后待测负载时序数据剩余数据的均值。

本发明实施例,该负载预测的方法,还包括在s320之前进行预处理,便于先筛选出待测负载时序数据中的异常数据。

需要说明的是,在进行异常处理之后,还需要进行预处理,便于将没有异常数据的待测负载时序数据输入对应的模型中进行负载预测,便于提供负载预测精度。

在本发明实施例中,s340包括:

利用第一类别、第二类别以及第三类别对应的负载预测模型,对待测负载时序数据进行预测,得到负载预测结果。

需要说明的是,方差检测、周期性检测、类别判断这三种类别判断方式,执行的前后顺序是可以变化的,只要能确定待测负载时序数据的类别,可以选择顺序的执行方式。

下文以依次进行方差检测、周期性检测、以及类别判断基线为示例。

图4为本发明实施例提供的另一种负载预测的方法的流程图。如图4所示,该负载预测的方法包括:

s401:获取待测负载时序数据;

s402:数据预处理;

s403:异常检测;

s404:在待测负载时序数据异常时,进行异常处理;

s405:方差检测;

s406:周期性检测;

s407:类别判断;

s408:利用对应的负载预测模型对待测负载时序数据进行预测,得到负载预测结果。

在本发明实施例中,s402包括:异常值处理和缺失值处理。

在本发明实施例中,s403包括:先对待测负载时序数据进行滑窗处理,得到多个子序列,然后检查多个子序列是否异常,如果子序列异常,需要确定子序列中的异常数据对负载预测结果的影响。对于影响程度大的异常数据,则需要异常处理s404,即消除该异常数据,并在s404异常处理之后,再进行s402预处理,进而提升负载预测准确性。如果异常数据为单个异常点时,且影响程度较小时,可以删除该异常点然后按照缺失值进行处理;如果异常数据为异常数据段,且影响程度比较大时,可以删除异常数据段,然后按照线性插值方法进行填充,或者采用均值处理;其中,均值处理是将异常数据段去掉之后,用剩下数据的均值来进行填充。

其中,本发明实施例中,对待测负载时序数据进行滑窗处理,得到多个子序列;分别确定多个子序列中每一个子序列与多个子序列中的其他子序列的距离;在距离大于第二距离阈值的情况下,确定与距离对应的子序列为异常子序列;其中,异常子序列包括异常数据。

具体地,在对待测负载时序数据进行滑窗处理,然后比较每个目标序列与其他子序列的距离,通过迭代找到与其它子序列最大距离目标序列,且该最大距离大于第二距离阈值,即为异常子序列。

在一个示例中,根据异常数据的数据长度、异常数据的数据幅度、以及异常数据距离测试点的距离,确定异常数据对负载预测结果的影响程度;在影响程度大于对应的程度阈值的情况下,异常处理异常数据。

需要说明的是,程度阈值是指对负载预测结果影响的大小,该程序阈值可以根据负载预测的精度进行设置。

其中,影响程度y为:

其中,m为待测时序数据的数据长度,w为异常数据的数据宽度,h为异常数据的数据高度,n为异常数据距离测试点的距离,n/m用于衡量异常数据距离测试点的程度。a为参数,可以取决于建模的数据集的业务背景;另外,a还可以通过实际业务数据集的异常数据分析可以确定这个参数。测试点的选取可以根据负载预测的精度,例如,对于精度要求高的,可以多选取测试点。

需要说明的是,针对不同影响程度,会设置不同的异常处理方式;例如,对于影响大的,可以参照对异常数据段的处理方式。

时间序列异常(timeseriesdiscord)定义:给定时间序列t,cd是t中起始位置为d,长度为n的子序列,如果cd拥有最大的最近邻距离,那么cd是t中的异常。即对于t的任意子序列co,|d-o|≧n,都有nndist(cd)>nndist(co)。

在本发明实施例中,s405方差检测包括:

本发明实施例,通过将方差检测结果小于第三预设条件的待测负载时序数据,采用第一类别对应的负载预测模型进行预测;其中,方差检测结果小于第三预设条件为:如果方差检测结果小于图2中的阈值α1,此时则采用阈值α1对应的负载预测模型进行预测;如果方差检测结果小于图2中的阈值α2,此时则采用阈值α2对应的全量数据构建的模型进行预测

在本发明实施例中,s406周期检测包括:

对不符合第三预设条件的待测负载时序数据进行周期性检测;

确定具有周期性的待测负载时序数据的类别为第二类别。

本发明实施例,通过将方差检测结果大于或等于第三预设条件的待测负载时序数据,进行周期性检测,并将具有周期性的待测负载时序数据,即类别为第一类别的待测负载时序数据采用基于实施例2中的第二类数据集构建的负载预测模型进行预测。

在本发明实施例中,s407包括:

分别计算不具有周期性的待测负载时序数据与类别判断基线间的距离;

将距离小于第一距离阈值的待测负载时序数据的类别确定为第三类别。

本发明实施例,通过类别判断,确定待测负载时序数据与类别判断基线间之间的关系;如果第三类别与类别判断基线中一类对应上时,则采用该类数据集构建的负载预测模型进行预测。如果第三类别不与类别判断基线匹配上,则采用小于阈值α1对应的负载预测模型进行预测;或者,采用小于阈值α2对应的全量数据构建的模型进行预测。

在本发明实施例中,s408包括:

利用多个负载预测模型中与待测负载时序数据的类别对应的模型对待测负载时序数据进行预测,得到负载预测结果。

在一个示例中,使用7天已经小时聚合的负载时序数据预测下一个小时的负载数据,并通过单步迭代的方式实现多步预测(即当前的负载预测结果用于和7天已经小时聚合的负载时序数据下一次的输入,然后得到一个新的负载预测结果;然后再作为下一次输入),从而实现未来24小时的负载趋势预测。

在本发明实施例中,将待测负载时序数据和负载预测结果进行存储,以便于后续对负载预测结果进行评估,进而提高预测精度。

在一个示例中,建立检验机制,例如,每隔一个周期进行一次负载预测结果评估,对于评估结果不好的,则需要重新对该待测负载数据进行分析,确定该待测负载数据的特征,并重新建立负载预测模型。

图5为本发明实施例的生成负载预测模型的装置的示意图。如图5所示,该生成负载预测模型的装50,包括:

采集模块501:用于采集目标机器的负载时序数据;

划分模块502:用于根据采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;

构建模块503,用于基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。

在本发明实施例中披露的生成负载预测模型的方法,通过采集的负载时序数据的特征,将采集的负载时序数据划分为至少两类数据集;并基于至少两类数据集分别构建每一类数据集对应的用于负载预测的模型。从而针对至少两类数据集分别构建对应的用于负载预测的模型,一方面能提高预测准确率,另一方面也提高了预测速度。

可选的,划分模块502,具体用于:

根据采集的负载时序数据的特征,采用方差检测、周期性检测和聚类中的一种或多种,将采集的负载时序数据划分为至少两类数据集。

可选的,该生成负载预测模型的装置,还包括:

滑窗模块,用于对采集的负载时序数据进行滑窗处理,得到多个滑窗负载序列。

可选的,该生成负载预测模型的装置,还包括:

方差检测模块,用于对多个滑窗负载序列进行方差检测。

可选的,该生成负载预测模型的装置,还包括:

方差检测模块,用于对采集的负载时序数据进行方差检测;

滑窗模块,具体用于将采集的负载时序数据中方差检测结果不符合第一预设条件的负载时序数据进行滑窗处理,得到多个滑窗负载序列。

可选的,划分模块502,具体用于:

将采集的负载时序数据中方差检测结果符合第一预设条件的负载时序数据划分为至少两类数据集中的第一类数据集。

可选的,该生成负载预测模型的装置,还包括:

周期性检测模块,用于对多个滑窗负载序列进行周期性检测;

划分模块502,具体用于将多个滑窗负载序列中具有周期性的滑窗负载序列划分为至少两类数据集中的第二类数据集。

可选的,周期性检测模块,具体用于:

将多个滑窗负载序列转换为对应的负载频域;

在每一个滑窗负载序列的主频率的个数小于第一预设阈值、且主频率与所有频率的比值大于第二预设阈值的情况下,确定每一个滑窗负载序列具有周期性。

可选的,该生成负载预测模型的装置,还包括:

周期性检测模块,用于对多个滑窗负载序列中方差检测结果不符合第二预设条件的滑窗负载序列进行周期性检测;

划分模块502,具体用于将不符合第二预设条件的滑窗负载序列中具有周期性的滑窗负载序列划分为至少两类数据集中的第三类数据集。

可选的,周期性检测模块,具体用于:

将不符合第二预设条件的滑窗负载序列转换为对应的负载频域;

在每一个不符合第二预设条件的滑窗负载序列的主频率的个数小于第一预设阈值、主频率与所有频率的比值大于第二预设阈值的情况下,确定每一个不符合第二预设条件的滑窗负载序列具有周期性。

可选的,该生成负载预测模型的装置,还包括:

聚类模块,用于对不具有周期性的滑窗负载序列进行聚类处理,得到聚类处理结果;

划分模块502,具体用于根据聚类处理结果,将不具有周期性的滑窗负载序列划分为至少两类数据集中的与聚类结果对应的不同类数据集。

可选的,聚类模块,具体用于:

根据不具有周期性的滑窗负载序列中任两个滑窗负载序列间的距离构建距离矩阵;

将距离矩阵转换为不具有周期性的滑窗负载序列的相似度矩阵;

根据相似度矩阵中不具有周期性的滑窗负载序列间的相似度,对不具有周期性的滑窗负载序列进行聚类,得到聚类处理结果。

可选的,该生成负载预测模型的装置,还包括:

确定模块,用于对于与聚类结果对应的不同类数据集中的每类数据集,根据类数据集中的数据值及数据量,确定针对类数据集的类别判断基线。

可选的,划分模块502,具体用于:

对采集的负载时序数据进行预处理,根据预处理后的负载时序数据的特征,将预处理后的负载时序数据划分为至少两类数据集;

其中,对采集的负载时序数据进行预处理,包括:

在采集的负载时序数据中存在负载时序数据的数据值大于上限阈值的时,设置大于上限阈值的负载时序数据的数据值为上限阈值;和/或,

在采集的负载时序数据存在负载时序数据的数据值大于下限阈值的时,设置大于下限阈值的负载时序数据的数据值为下限阈值。

其中,负载时序数据包括:cpu负载时序数据、网络负载时序数据或磁盘读写的负载时序数据。

可选的,构建模块503,具体用于:

利用xgboost和/或多元线性回归模型对至少两类数据集中的每一类数据集分别进行拟合,得到每一类数据集对应的用于负载预测的模型。

图6为本发明实施例的负载预测的装置的示意图。如图6所示,该负载预测的装置60,包括:

获取模块601,用于获取待测负载时序数据;

确定模块602,用于基于待测负载时序数据的特征,确定待测负载时序数据的类别;

预测模块603,用于利用上述的负载预测模型中与类别对应的模型,对待测负载时序数据进行预测,得到负载预测结果。

在本发明实施例,通过采用方差检测、周期性检测和类别判断基线中的一种或多种,匹配到与待测负载时序数据对应的负载预测模型,并基于对应的负载预测模型进行预测,从而提高了负载预测速度。

可选的,确定模块602,具体用于:

根据待测负载时序数据的特征,采用方差检测、周期性检测、聚类和类别判断基线中的一种或多种,确定待测负载时序数据的类别。

可选的,该负载预测的装置,还包括:

方差检测模块,用于对待测负载时序数据进行方差检测;

确定模块602,具体用于确定待测负载时序数据中方差检测结果符合第三预设条件的待测负载时序数据的类别为第一类别。

可选的,该负载预测的装置,还包括:

周期性检测模块,用于对待测负载时序数据中方差检测结果不符合第三预设条件的待测负载时序数据进行周期性检测;

确定模块602,具体用于确定具有周期性的待测负载时序数据的类别为第二类别。

可选的,该负载预测的装置,还包括:

计算模块,用于分别计算不具有周期性的负载时序数据与类别判断基线间的距离;

确定模块602,具体用于将距离小于第一距离阈值的负载时序数据的类别确定为第三类别。

可选的,该负载预测的装置,还包括:

异常检测模块,用于异常检测待测负载时序数据。

可选的,该负载预测的装置,还包括:

异常处理模块,用于在确定待测负载时序数据中存在异常数据的情况下,异常处理异常数据。

可选的,确定模块602,还用于:

根据异常数据的数据长度、异常数据的数据幅度、以及异常数据距离测试点的距离,确定异常数据对负载预测结果的影响程度。

异常处理模块,具体用于在影响程度大于对应的程度阈值的情况下,异常处理异常数据。

可选的,该负载预测的装置,还包括:

预处理模块,用于预处理待测负载时序数据。

可选的,预处理模块,具体用于:预处理异常处理后的数据。

可选的,异常检测模块,具体用于:

对待测负载时序数据进行滑窗处理,得到多个子序列;

分别确定多个子序列中每一个子序列与多个子序列中的其他子序列的距离;

在距离大于第二距离阈值的情况下,确定与距离对应的子序列为异常子序列;其中,异常子序列包括异常数据。

图7示出了本发明实施例的计算设备示意性框图,能够实现根据本发明实例提供的生成负载预测模型的方法和装置、以及负载预测的方法和装置的计算设备的示例性硬件架构的结构图。

计算设备700包括输入设备701、输入接口702、中央处理器703、存储器704、输出接口705、以及输出设备706。其中,输入接口702、中央处理器703、存储器704、以及输出接口705通过总线710相互连接,输入设备701和输出设备706分别通过输入接口702和输出接口705与总线710连接,进而与计算设备700的其他组件连接。

具体地,输入设备701接收来自外部的输入信息,并通过输入接口702将输入信息传送到中央处理器703;中央处理器703基于存储器704中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器704中,然后通过输出接口705将输出信息传送到输出设备706;输出设备706将输出信息输出到计算设备700的外部供用户使用。

图7所示的计算设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1、图2和图5描述的生成负载预测模型的方法和装置,以及图3、图4和图6描述的负载预测的方法和装置。

根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以从网络上被下载和安装,和/或从可拆卸存储介质被安装。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令,当其在计算机上运行时,使得计算机执行上述各个实施例中描述的方法。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。

以上所描述的装置实例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

需要明确的是,本发明并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域的技术人员可以清楚地了解到,本发明的方法过程并不限于所描述和示出的具体步骤,任何熟悉本技术领域的技术人员在领会本发明的精神后,在本发明揭露的技术范围内作出各种改变、修改和添加,或者等效替换以及改变步骤之间的顺序,这些修改或替换都应涵盖在本发明的保护范围之内。

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