业务指标预测方法及装置与流程

文档序号:12916206阅读:295来源:国知局
业务指标预测方法及装置与流程

本发明涉及数据处理技术领域,特别涉及一种业务指标预测方法及装置。



背景技术:

业务指标一般以企业或公司等机构旗下各个业务产生的时间序列来表征。其中,时间序列是指将同一个统计指标的数值按照其发生时间的先后顺序排列而成的数据序列。例如,某一款游戏每天的收入情况、某个网站每天的访问人数、投放某个广告每天获得的收入等等。时下时间序列分析在生活和生产中扮演着越来越重要的角色,其主要应用于预测领域,诸如气象预报、市场预测、人口预测、汛情预测、产量预测等等。比如,在互联网产业中,采用时间序列分析方法可实现对网站访问量、广告收入、游戏用户接入量等业务指标进行预测,从而能够及早发现问题,进而保障业务的稳定、用户的良好体验及资金的有效运转。

现有技术通常采取下述方式对业务指标进行预测。第一种方式采用简单滑动平均法,根据时间序列逐项移推,依次计算一段时间窗口内数据的平均值,并依此进行业务指标预测。对于时间窗口长度为k的简单滑动平均方法的计算公式如下:

其中,k、i和n均为正整数,指代预测值,vn-i指代实际观测值。

第二种方式采用加权滑动平均法,根据同一个滑动段内不同时间的数据对预测值的影响程度,分别给予数据不同的权重,然后再进行平均以预测未来值。加权滑动平均法根据愈是近期数据对预测值影响愈大这一特点,不同地对待滑动窗口内的各个数据。对近期数据给予较大的权重,对较远期的数据给予较小的权重,依此进行业务指标预测。其计算公式如下:

其中,wn-i为n-i时刻的权重,并满足

在实现本发明的过程中,发现上述技术至少存在以下问题:

当业务指标存在较大波动和受到季节性因素等影响时,采取上述两种滑动平均法不能有效地抓住指标的变化规律;此外,滑动窗口的长度对预测结果有着较大的影响,较短的窗口不能抓住指标的长期趋势,较长的窗口又会对指标变动不敏感,因此上述预测方式的预测效果欠佳。



技术实现要素:

为了解决上述技术的问题,本发明实施例提供了一种业务指标预测方法及装置。所述技术方案如下:

第一方面,提供了一种业务指标预测方法,所述方法包括:

对于一个业务指标,根据所述业务指标的第一历史时间序列,训练对所述业务指标进行预测的至少一个第一模型;

对于每一个第一模型,基于所述第一模型和第二历史时间序列对所述业务指标进行预测,得到一个初步预测结果;

将所述至少一个第一模型输出的所述初步预测结果进行统计分析,得到所述业务指标的最终预测结果。

第二方面,提供了一种业务指标预测装置,所述装置包括:

训练模块,用于对于一个业务指标,根据所述业务指标的第一历史时间序列,训练对所述业务指标进行预测的至少一个第一模型;

预测模块,用于对于每一个第一模型,基于所述第一模型和第二历史时间序列对所述业务指标进行预测,得到一个初步预测结果;

统计分析模块,用于将所述至少一个第一模型输出的所述初步预测结果进行统计分析,得到所述业务指标的最终预测结果。

本发明实施例提供的技术方案带来的有益效果是:

基于历史数据训练多个模型,且每一个模型均根据历史数据对同一业务指标进行预测,进而得到多个预测结果。之后,将这多个预测结果进行加权平均等统计分析,将最终得到的结果作为对该业务指标的预测结果,由于进行了多个模型融合,这样即便业务指标存在较大波动和受到季节性因素等影响,依然可以通过多种模型有效地抓住指标的变化规律和长期趋势,使得对业务指标的 预测更为精准,该种预测效果较佳。

附图说明

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

图1是本发明实施例提供的一种业务指标预测方法的流程图;

图2a是本发明实施例提供的一种业务指标预测方法的流程图;

图2b是本发明实施例提供的一种rnn模型的网络结构图;

图3是本发明实施例提供的一种业务指标预测装置的结构示意图;

图4是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种业务指标预测方法的流程图。参见图1,本发明实施例提供的方法流程包括:

101、对于一个业务指标,根据业务指标的第一历史时间序列,训练对业务指标进行预测的至少一个第一模型。

102、对于每一个第一模型,基于该第一模型和第二历史时间序列对业务指标进行预测,得到一个初步预测结果。

103、将至少一个第一模型输出的初步预测结果进行统计分析,得到业务指标的最终预测结果。

本发明实施例提供的方法,基于历史数据训练多个模型,且每一个模型均根据历史数据对同一业务指标进行预测,进而得到多个预测结果。之后,将这多个预测结果进行加权平均等统计分析,将最终得到的结果作为对该业务指标的预测结果,由于进行了多个模型融合,这样即便业务指标存在较大波动和受到季节性因素等影响,依然可以通过多种模型有效地抓住指标的变化规律和长期趋势,使得对业务指标的预测更为精准,该种预测效果较佳。

在另一个实施例中,根据业务指标的第一历史时间序列,训练对业务指标进行预测的至少一个第一模型,包括:

基于时间顺序,在第一历史时间序列中分别确定训练数据和测试数据;

根据训练数据,训练至少一个第二模型中的各个参数,得到至少一个训练模型;

根据测试数据对至少一个训练模型中的各个参数进行优化,得到至少一个第一模型。

在另一个实施例中,基于时间顺序,在第一历史时间序列中分别确定训练数据和测试数据,包括:

将第一历史时间序列中时间变量早于预设时间阈值的业务数据作为训练数据;

将第一历史时间序列中时间变量晚于预设时间阈值的业务数据作为测试数据。

在另一个实施例中,将至少一个第一模型输出的初步预测结果进行统计分析,得到业务指标的最终预测结果,包括:

将至少一个第一模型输出的初步预测结果进行加权平均处理,得到最终预测结果。

在另一个实施例中,将至少一个第一模型输出的初步预测结果进行统计分析,得到业务指标的最终预测结果,包括:

基于mape((meanabsolutepercentageerror,相对百分误差)算法,在输出的所有初步预测结果中选取指定个初步预测结果,指定个初步预测结果对应的模型对业务指标的预测误差小于指定数值;

将指定个初步预测结果进行加权平均处理,得到最终预测结果。

在另一个实施例中,至少一个第一模型包括ewma(exponentiallyweightedmoving-average,指数加权移动平均)模型、arma(auto-regressiveandmovingaverage,自回归移动平均)模型、rnn(recurrentneuralnetwork,递归神经网络)模型。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2a是本发明实施例提供的一种业务指标预测方法的流程图。参见图2a,本发明实施例提供的方法流程包括:

201、对于一个业务指标,根据业务指标的第一历史时间序列,训练对该业务指标进行预测的至少一个第一模型。

其中,业务指标可指代游戏每天获得收入、网站每天访问人数、广告每天获得收入等,本发明实施例对此不进行具体限定。第一历史时间序列指代该业务指标的历史数据。在本发明实施例中,第一历史时间序列均可以抽象为一个二元组的集合t={(t1,v1),(t2,v2),(t3,v3),......,(tn,vn)}。

其中,ti为时间变量,满足(ti<ti+1,i∈{1,2,3,...,n-1},vi为ti时刻该业务指标的实际观测值,也即vi指代的是该业务指标真实的统计值,与预测值相对应。至少一个第一模型包括ewma模型、arma模型、rnn模型等,本发明实施例对此不进行具体限定。针对上述每一个模型来说,通常一个模型仅考虑影响业务指标的一个方面,不能够概括所有对业务指标有影响的因素。比如,ewma模型在进行预测时仅能够抓住数据的长期变化趋势,而arma模型仅能够抓住数据的一些平稳变化规律,rnn模型仅能够抓住数据一些规律性的变化趋势。为了提高业务指标的预测精确度,本发明实施例采取使用多种模型来拟合业务指标的方式,即采用多种模型对同一业务指标进行预测,并将得到的预测结果进行加权平均,从而得到精确度较高的预测结果,详细地描述详见后续步骤。

其中ewma模型是常用的一种预测方法,其计算公式如下所示:

公式(1)是一个递归式的定义,将滑动窗口内的k个预测值代入公式(1)可以得到:

从上述公式(2)可以看出,n时刻的预测值跟n-1时刻以及之前所有时刻的实际观测值按(1-α)i的i递增,这便是指数加权移动平均法中指数的意义所在。公式(1)和公式(2)的文字描述就是,对离当前预测时刻较近的观测值赋予较大的权数,对离当前预测时刻较远的观测值赋予较小的权数,权数按照时间由近到远的顺序按指数规律递减,因此称之为指数加权移动平均法。

arma模型是研究时间序列的另一个重要方法,它由自回归模型(ar)和滑动平均模型(ma)为基础组合而成。其中,p阶自回归模型计算公式如下:

其中,为待估计参数,i=1,2,...,p;c为常数,εn为白噪声,且服从均值为0、方差为σ2的正态分布。自回归模型描述的是当前数据与历史数据之间的关系。与滑动平均法不同的是,在自回归模型中是从历史数据中学习得到的。

q阶滑动平均模型计算公式如下:

其中,θi为待估计参数,i=1,2,...,q;u为指标均值。滑动平均模型描述的是自回归部分的误差累计。

arma(p,q)模型包含了p个自回归项和q个滑动平均项,它可以表示为如下公式(5):

给定arma模型,以及一段时间内的时间序列,便可以通过极大似然原理,给出模型参数和白噪声方差的极大似然估计。

rnn是一种特殊的神经网络,在它的网络结构中有环的存在。一个神经元的输出结果可以是另一个神经元的输入,其网络结构如图2b所示。从图2b中可以看出,隐藏层的输入不仅包括当前时刻输入层的输入,还包括前一时刻隐藏层自己的输出。输出层在t时刻的最终结果o(t)是该时刻输入和所有历史输出共同作用的结果。因此这种网络结构非常适合用来给时间序列建模。在该网络中,每一个隐藏层神经单元和输出层单元的激活函数可以表达为如下公式(6)和公式(7):

ht=σ(whxxt+whhht-1+bh)(6)

yt=softmax(wyhht+by)(7)

其中,σ(.)为激活函数,在本发明实施例中我们使用sigmoid函数,whx、whh、wyh为神经网络结构中的待估计参数,whx为输入层和隐藏层连接神经元之间的权重矩阵、whh为隐藏层和隐藏层之间的权重矩阵、wyh为隐藏层和输出层之间的权重矩阵。bh、by为待估计偏置项。可以通过反向传播算法求解这些参数。

在本发明实施例中,在根据业务指标的第一历史时间序列,训练对业务指标进行预测的至少一个第一模型时,可采取下述方式实现:

基于时间顺序,在第一历史时间序列中分别确定训练数据和测试数据;根据训练数据训练至少一个第二模型中的各个参数,得到至少一个训练模型;根据测试数据对至少一个训练模型中的各个参数进行优化,得到至少一个第一模型。

需要说明的是,在本发明实施例中第一模型指代已经过初步训练过程和参数优化过程处理后的模型;第二模型指代原始模型,即未经过初步训练过程和参数优化过程处理的模型。

其中,基于时间顺序的含义是将第一历史时间序列中时间变量早于预设时间阈值的业务数据作为训练数据;将第一历史时间序列中时间变量晚于预设时间阈值的业务数据作为测试数据。以第一历史时间序列中业务数据为1月1号到12月31号之间每天的网站访问人数为例,在这一时间段内的所有业务数据均为该网站访问人数的实际观测值。比如可将1月1号到11月30号之间每天网站访问人数的实际观测值作为训练数据,而将12月1号到12月31号之间每天网站访问人数的实际观测值作为测试数据。

在开始训练一个模型之前,该模型所涉及的所有参数可用一些不同的小随机数进行初始化。“小随机数”用来保证模型不会因参数值过大而进入饱和状态,从而导致训练失败;“不同”用来保证模型可以正常地学习。如果用相同的数去初始化参数(比如,权矩阵),则模型可能无能力学习。在根据第一历史时间序列中的训练数据训练好模型后,也即通过训练数据确定模型中的各个参数后,为了提高模型的预测精确度,减小该模型预测出的预测值与实际观测值之间的误差,本发明实施例还包括根据第一历史时间序列中的测试数据对上述训练模型进行进一步地修正过程,即对训练模型中的各个参数进行进一步地优化,为模型选择出最优参数。

其中,可使用mape算法为训练出的每一个训练模型选择最优参数。其中,mape算法主要用来衡量预测值与实际观测值之间差别的平均值。其定以如下:

预测值与实际观测值之间差别的平均值越小,也即mape的数值越小,证明模型当前的参数越优。在根据测试数据和训练模型中当前的各个参数得到预测数据后,基于上述公式(8)计算预测数据与实测试数据之间差别的平均值,再 根据得到的mape的数值进一步地对模型中当前的各个参数进行调整,不断重复上述过程,直到mape的数值小于一定值或者mape的数值维持在一个恒定值不变,此时模型中的各个参数即为该模型的最优参数。

202、对于每一个第一模型,基于该第一模型和第二历史时间序列对业务指标进行预测,得到一个初步预测结果。

其中,第二历史时间序列既可与第一历史时间序列一致,也可与第一历史时间序列不一致,本发明实施例对此不进行具体限定。在根据上述步骤训练好至少一个第一模型,即为至少一个第一模型分别选择出最优参数后,本步骤基于第二历史时间序列,分别利用每一个模型对该业务指标进行预测。以至少一个第一模型为ewma模型、arma模型、rnn模型为例,则在本步骤中基于第二历史时间序列,利用ewma模型对该业务指标进行一次预测,得到一个初步预测结果;再基于第二历史时间序列,利用arma模型对该业务指标进行一次预测,得到一个初步预测结果;再基于第二历史时间序列,利用rnn模型对该业务指标进行一次预测,得到一个初步预测结果。

在得到上述每一个模型的初步预测结果后,可直接将上述得到的全部初步预测结果进行加权平均,得到的数据即为对该业务指标进行预测的最终预测结果。这样通过多种模型融合不仅能进一步地提高模型预测的精确度,而且还能有效防止过拟合现象的出现。此外,为了进一步地提升预测精确度,本发明实施例还提供了在至少一个第一模型中选择表现较好的一部分模型进行加权平均,完成对业务指标进行预测的方法,详细过程如下:

203、基于mape算法,在输出的所有初步预测结果中选取指定个初步预测结果。

在本发明实施例中,在至少一个第一模型输出的所有初步预测结果中选取指定个初步预测结果时,同样基于mape算法实现。在经过上述201的处理后,每一个第一模型中的参数均为最优参数。此时,可在第一历史时间序列的测试数据中或在第二历史时间序列中选择一小部分数据,根据这一小部分数据分别对至少一个第一模型中的每一个模型进行测试。如果输出的预测数据与实际观测值之间的mape的数值小于指定数值,则表明该模型对业务指标的预测误差小于指定数值,将该模型划分为指定个初步预测结果中的一员。

204、将指定个初步预测结果进行加权平均处理,得到最终预测结果。

在本发明实施例中,在将指定个初步预测结果进行加权平均处理时,可为预测误差最小的模型赋予最大的权重,为预测误差最大的模型赋予最小的权重,以保证最终预测结果的精确度,本发明实施例对此不进行具体限定。

本发明实施例提供的方法,基于历史数据训练多个模型,且每一个模型均根据历史数据对同一业务指标进行预测,进而得到多个预测结果。之后,将这多个预测结果进行加权平均等统计分析,将最终得到的结果作为对该业务指标的预测结果,由于进行了多个模型融合,这样即便业务指标存在较大波动和受到季节性因素等影响,依然可以通过多种模型有效地抓住指标的变化规律和长期趋势,使得对业务指标的预测更为精准,该种预测效果较佳。

图3是本发明实施例提供的一种业务指标预测装置的结构示意图。参见图3,该装置包括:训练模块301、预测模块302、统计分析模块303。

其中,训练模块301与预测模块302连接,用于对于一个业务指标,根据业务指标的第一历史时间序列,训练对业务指标进行预测的至少一个第一模型;预测模块302与统计分析模块303连接,用于对于每一个第一模型,基于该第一模型和第二历史时间序列对业务指标进行预测,得到一个初步预测结果;统计分析模块303,用于将至少一个第一模型输出的初步预测结果进行统计分析,得到业务指标的最终预测结果。

在另一个实施例中,训练模块301,用于基于时间顺序,在第一历史时间序列中分别确定训练数据和测试数据;根据训练数据,训练至少一个第二模型中的各个参数,得到至少一个训练模型;根据测试数据对至少一个训练模型中的各个参数进行优化,得到至少一个第一模型。

在另一个实施例中,训练模块301,用于将第一历史时间序列中时间变量早于预设时间阈值的业务数据作为训练数据;将第一历史时间序列中时间变量晚于预设时间阈值的业务数据作为测试数据。

在另一个实施例中,统计分析模块303,用于将至少一个第一模型输出的初步预测结果进行加权平均处理,得到最终预测结果。

在另一个实施例中,统计分析模块303,用于基于mape算法,在输出的所有初步预测结果中选取指定个初步预测结果,指定个初步预测结果对应的模型对业务指标的预测误差小于指定数值;将指定个初步预测结果进行加权平均 处理,得到最终预测结果。

本发明实施例提供的装置,基于历史数据训练多个模型,且每一个模型均根据历史数据对同一业务指标进行预测,进而得到多个预测结果。之后,将这多个预测结果进行加权平均等统计分析,将最终得到的结果作为对该业务指标的预测结果,由于进行了多个模型融合,这样即便业务指标存在较大波动和受到季节性因素等影响,依然可以通过多种模型有效地抓住指标的变化规律和长期趋势,使得对业务指标的预测更为精准,该种预测效果较佳。

需要说明的是:上述实施例提供的业务指标预测装置在进行业务指标预测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务指标预测装置与业务指标预测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图4是根据一示例性实施例示出的一种服务器,该服务器可以用于实施上述任一示例性实施例示出的业务指标预测方法。具体来讲:参见图4,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunit,cpu)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出)。

服务器400还可以包括一个或一个以上电源428,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,一个或者一个以上程序包含用于进行以下操作的指令:

对于一个业务指标,根据所述业务指标的第一历史时间序列,训练对所述 业务指标进行预测的至少一个第一模型;

对于每一个第一模型,基于所述第一模型和第二历史时间序列对所述业务指标进行预测,得到一个初步预测结果;

将所述至少一个第一模型输出的所述初步预测结果进行统计分析,得到所述业务指标的最终预测结果。

在另一个实施例中,所述根据所述业务指标的第一历史时间序列,训练对所述业务指标进行预测的至少一个第一模型,包括:

基于时间顺序,在所述第一历史时间序列中分别确定训练数据和测试数据;

根据所述训练数据,训练至少一个第二模型中的各个参数,得到至少一个训练模型;

根据所述测试数据对所述至少一个训练模型中的各个参数进行优化,得到所述至少一个第一模型。

在另一个实施例中,所述基于时间顺序,在所述第一历史时间序列中分别确定训练数据和测试数据,包括:

将所述第一历史时间序列中时间变量早于预设时间阈值的业务数据作为所述训练数据;

将所述第一历史时间序列中时间变量晚于所述预设时间阈值的业务数据作为所述测试数据。

在另一个实施例中,所述将所述至少一个第一模型输出的所述初步预测结果进行统计分析,得到所述业务指标的最终预测结果,包括:

将所述至少一个第一模型输出的初步预测结果进行加权平均处理,得到所述最终预测结果。

在另一个实施例中,所述将所述至少一个第一模型输出的所述初步预测结果进行统计分析,得到所述业务指标的最终预测结果,包括:

基于相对百分误差mape算法,在输出的所有初步预测结果中选取指定个初步预测结果,所述指定个初步预测结果对应的模型对所述业务指标的预测误差小于指定数值;

将所述指定个初步预测结果进行加权平均处理,得到所述最终预测结果。

在另一个实施例中,所述至少一个第一模型包括ewma模型、arma模型、rnn模型。

本发明实施例提供的服务器,基于历史数据训练多个模型,且每一个模型均根据历史数据对同一业务指标进行预测,进而得到多个预测结果。之后,将这多个预测结果进行加权平均等统计分析,将最终得到的结果作为对该业务指标的预测结果,由于进行了多个模型融合,这样即便业务指标存在较大波动和受到季节性因素等影响,依然可以通过多种模型有效地抓住指标的变化规律和长期趋势,使得对业务指标的预测更为精准,该种预测效果较佳。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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