一种数据预测方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据预测方法和装置。
背景技术
数据预测在实际应用中具有很大的实用价值,特别是预测未来一段时间的数据,例如,可以预测金融市场股价走势,进而制定合理地投资策略,以实现收益最大化和损失最小化,再例如,可以预测公司的流动资金量,进而实现公司资金的有效管理等。
在进行数据预测之前,通常可以基于历史数据训练得到预测模型。在得到预测模型后,在对某个业务未来某段时间的数据进行测试时,可以使用预测模型得到预测结果。
通常,当业务具有明显的规律性时,使用上述记载的预测模型可以得到准确地预测结果,然而,当业务经常发生变化导致业务不具有明显的规律性时,使用上述记载的预测模型将不能得到准确地预测结果。
发明内容
本申请实施例提供一种数据预测方法和装置,用于解决使用现有的数据预测方法,对规律性不明显的业务在未来某段时间的数据进行预测时,得到的预测结果准确度较低的问题。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出一种数据预测方法,包括:
获取目标时间的时间特征;
获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
第二方面,提出一种数据预测装置,包括:
第一获取单元,获取目标时间的时间特征;
第二获取单元,获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
第一预测单元,根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
第二预测单元,根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
第三方面,提出一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
获取目标时间的时间特征;
获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
第四方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
获取目标时间的时间特征;
获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例提供的技术方案,在基于历史数据进行模型训练时,可以根据最近一段时间的历史数据确定相应的移动平均值,并将移动平均值作为训练样本进行训练,得到预测模型。这样,由于在模型训练时,使用了近期数据的移动平均值作为训练样本,因此,可以提升近期数据在预测模型中的权重,在基于预测模型进行数据预测时,能够将业务近期的变化考虑在内,从而得到准确度较高的预测结果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例数据预测方法的流程示意图;
图2是本申请的一个实施例数据预测方法的流程示意图;
图3是本申请的一个实施例电子设备的结构示意图;
图4是本申请的一个实施例数据预测装置的结构示意图。
具体实施方式
现有技术中,在进行数据预测之前,通常可以基于历史数据训练得到预测模型。在得到预测模型后,在对某个业务未来某段时间的数据进行测试时,可以使用预测模型得到预测结果。
在基于历史数据进行模型训练时,训练方法通常可以采用以下三种:GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法,线性回归算法,GBDT算法与线性回归算法相结合。然而,在实际应用中,上述三种训练方法各自存在一定的缺陷,导致训练得到的模型不能得到较为准确的预测结果。以下将详细说明三种训练方法各自的缺陷。
在采用GBDT算法进行模型训练时,需要平稳的样本数据才能拟合趋势。其中,平稳的样本数据可以理解为样本数据偏离标准差的程度较小。然而,实际的样本数据一般是不平稳的,导致样本数据偏离标准差的程度比较大,虽然采用现有的处理方式(例如,差分处理、log化处理等)可以在一定程度上消除这种不平稳的趋势,但是无法做到完全消除,因此,在使用GBDT算法训练得到的预测模型进行数据预测时,得到的预测结果准确度较低。
在采用线性回归算法进行模型训练时,需要线性的样本数据。然而,实际的样本数据通常存在大量非线性的情况,因此,在进行模型训练时,需要对样本数据进行大量的非线性转换,导致训练过程比较复杂。此外,线性回归的算法也不能解决层次性地非线性问题,例如“与”、“或”、“异或”这种逻辑组合的非线性问题,因此,在使用线性回归算法训练得到的预测模型进行数据预测时,得到的预测结果准确度较低。
在采用GBDT和线性回归相结合的算法进行模型训练时,可以兼顾样本数据的平稳性和线性,相较于单独采用GBDT算法或单独采用线性回归算法进行模型训练而言,得到的预测模型的预测结果准确度较高。然而,当业务没有规律性或没有明显的规律性时,使用GBDT和线性回归相结合的算法得到的预测模型对业务变化的适应性较差,导致预测结果的准确度较低。
综上所述,使用现有的数据预测方法对业务在未来某段时间的数据进行预测时,预测结果的准确度较低。
为了解决上述技术问题,本申请实施例提供一种数据预测方法和装置,该方法包括:获取目标时间的时间特征;获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
本申请实施例提供的技术方案,采用GBDT和线性回归相结合的算法进行模型训练,可以解决由于样本数据的不稳定性和非线性导致训练得到预测模型预测结果不准确的问题;此外,在模型训练时,由于使用了近期数据的移动平均值作为训练样本,因此,可以提升近期数据在预测模型中的权重,在基于预测模型进行数据预测时,能够将业务近期的变化考虑在内,从而得到准确度较高的预测结果。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供的技术方案,可以对业务在未来某段时间的数据进行预测,并得到较为准确的预测结果,所述业务可以是不具有规律性或明显规律性的业务,也可以是具有明显规律性的业务。
本申请实施例适用的应用场景,可以是对金融市场股价走势进行预测,也可以是对公司的流动资金量进行预测等,这里不做具体限定。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1是本申请的一个实施例数据预测方法的流程示意图。所述方法如下所述。
S102:获取目标时间的时间特征。
在S102中,在对某个业务未来某段时间的数据进行预测时,可以将所述某段时间作为目标时间,并获取所述目标时间的时间特征。
所述目标时间可以以一小时、一天、一周、一个季度等为时间单位,当所述目标时间以一小时为单位时间时,所述目标时间可以是一个小时,也可以是多个小时;当所述目标时间以一天为单位时间时,所述目标时间可以是一天,也可以是多天;……,这里不再一一举例说明。
考虑到实际应用场景,通常预测未来一天或多天的数据,因此,在本申请的各实施例中,可以以一天作为所述目标时间的单位时间进行说明。
当所述目标时间以一天为单位时间时,所述目标时间的时间特征可以用于表征所述目标时间的日期特征,具体可以包括:所述目标时间是星期几,是上旬、中旬还是下旬,是否是节假日,以及属于哪个季节中的至少一种,当然,所述时间特征也可以包括日期的其他特征,这里不再一一举例说明。
应理解,当所述目标时间为一天时,所述目标时间的时间特征为该天的时间特征,当所述目标时间为多天时,所述目标时间的时间特征包括所述目标时间中每天的时间特征,且每天的时间特征包含的种类相同。
例如,在对某个业务未来三天的数据进行预测时,若所述未来三天为2018年10月1日至10月3日,则2018年10月1日至10月3日即为所述目标时间,目标时间的时间特征可以包括2018年10月1日的时间特征星期一、上旬和节假日,2018年10月2日的时间特征星期二、上旬和节假日,2018年10月3日的时间特征星期三、上旬和节假日。其中,每天的时间特征都包含星期几、上旬、中旬还是下旬、是否节假日这三种信息。
在基于上述记载的方法获取到目标时间的时间特征后,可以执行S104。
S104:获取与所述目标时间对应的移动平均值。
在S104中,可以获取与所述目标时间对应的移动平均值。其中,当目标时间为一天时,可以获取该天对应的移动平均值,当目标时间为多天时,可以获取目标时间中每一天各自对应的移动平均值。为了便于理解,以下可以以获取一天对应的移动平均值为例进行说明。
本申请实施例中,一天对应的移动平均值的个数可以是一个,也可以是多个。优选地,为了提高近期数据的权重,进而提高预测结果的准确度,移动平均值的个数可以是多个,且,在保证预测结果准确度以及减少计算量的情况下,移动平均值的个数可以优选4个。
当移动平均值的个数为多个时,不同的移动平均值可以根据不同设定时间内的历史值确定得到,其中,所述设定时间可以理解为所述目标时间之前且接近所述目标时间的多天时间,所述不同设定时间的截止时间相同,具体可以是目标时间之前的7天、15天、30天和90天,也可以是目标时间之前的3天、7天、15天和30天,等,这里不再一一举例说明。
需要说明的是,针对不同天数的目标时间,所述不同设定时间的时间范围可以不同,当目标时间为一天时,所述不同设定时间可以从目标时间的前一天开始往前的不同时间段,当目标时间为N(N为大于1的整数)天时,所述不同设定时间可以从目标时间的前N天开始往前的不同时间段。
这样,可当目标时间为多天时,由于不同设定时间的截止时间可以往前推移相应的天数,因此,针对目标时间中第二天至第N天,可以避免由于缺少该天之前的目标时间的历史值,导致无法确定得到该天的移动平均值的问题。
例如,当目标时间是2018年10月1日时,不同的设定时间可以是2018年9月30日开始往前的不同时间段,例如,可以是2018年9月30日开始往前的7天(即2018年9月24日至2018年9月30日)、15天(即2018年9月16日至2018年9月30日)、30天(即2018年9月1日至2018年9月30日)和90天(即2018年7月3日至2018年9月30日)。
这样,可以根据不同的设定时间内的历史值确定目标时间2018年10月1日对应的多个移动平均值。
当目标时间是2018年10月1日至2018年10月3日时,由于缺少2018年10月1日和2018年10月2日的历史值,因此,可以将设定时间的截止时间往前推移3天,即设定时间可以是2018年9月28日开始往前的不同时间段,例如,可以是2018年9月28日开始往前的7天(即即2018年9月22日至2018年9月28日)、15天(即2018年9月14日至2018年9月28日)、30天(即2018年8月30日至2018年9月28日)和90天(即2018年7月1日至2018年9月28日)。
这样,由于设定时间是从目标时间2018年10月1日至2018年10月3日之前的3天开始往前的不同时间段,因此,可以避免在确定2018年10月3日的不同移动平均值时,由于缺少2018年10月1日以及2018年10月2日的历史值,导致的无法确定得到2018年10月3日的不同移动平均值。
在其他实现方式中,当目标时间为多天时,也可以不将设定时间的截止时间往前推移,此时,可以将目标时间的预测值作为目标的历史值。但是,这种方式会加大计算量,且最终预测结果的准确度相较于将设定时间的截止时间往前推移的情况没有明显提升,因此,为了简化计算量,本申请实施例可以以往前推移设定时间的截止时间进行说明。
本申请实施例在获取目标时间对应的移动平均值时,以获取一天对应的一个移动平均值为例,具体可以包括:
确定所述设定时间内不同单位时间的历史值;
根据所述不同单位时间的历史值,通过以下公式获取得到所述移动平均值:F=(A1+A2+……+An)/n,其中,F为所述移动平均值,A1、A2、……、An为不同单位时间内的历史值,n为所述设定时间包含的单位时间的个数。
所述单位时间与所述目标时间的单位时间相同,可以理解为一天。
在获取一天对应的一个移动平均值时,可以基于历史数据确定设定时间内每天的历史值,根据每天的历史值,可以通过公式F=(A1+A2+……+An)/n计算得到移动平均值。
例如,目标时间为2018年10月1日至2018年10月3日,在获取2018年10月2日的一个移动平均值时,假设设定时间为7天,则,首先,可以基于历史数据确定2018年9月22日至2018年9月28日每天的历史值;然后,可以基于F=(A1+A2+……+An)/n确定2018年10月2日7天前的移动平均值,其中,A1、A2、……、An为2018年9月22日至2018年9月28日内每天的历史值,n为7天。
在获取到一天对应的一个移动平均值后,可以基于相同的方法,获取得到该天的其他移动平均值。
在获取到一天的移动平均值后,若目标时间包含多天,则可以基于相同的方法获取其他的目标时间各自对应的多个移动平均值,这里都不再一一举例说明。
在获取到目标时间对应的移动平均值后,可以执行S106。
S106:根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值。
在S106中,可以将S102中获取的目标时间的时间特征作为GBDT模型的输入,得到GBDT模型输出的第一预测值。
本申请实施例中,所述GBDT模型可以基于以下方法预先训练得到:
获取历史时间的历史时间特征,以及所述历史时间对应的历史值;
使用GBDT算法对所述历史时间特征以及所述历史值进行训练,得到所述GBDT模型。
所述历史时间可以理解为历史的每一天,历史时间的历史时间特征可以理解为历史时间内每一天分别对应的历史时间特征。
例如,业务的历史数据对应的时间为2017年1月1日至2018年9月30日,则历史时间为2017年1月1日至2018年9月30日中的每一天,历史时间特征为2017年1月1日至2018年9月30日中每一天的时间特征,历史值为2017年1月1日至2018年9月30日中每一天的值。
在获取历史时间的历史时间特征时,可以基于业务的历史数据获取得到,具体实现方式可以参见上述S102中记载的获取目标时间的时间特征的内容,这里不再重复说明。其中,每天的历史时间特征包含的种类需要保持一致,例如,历史时间内某一天的历史时间特征包括星期几和是否为节假日这两种信息,那么,其他历史时间的历史时间特征也需要包括星期几和是否为节假日这两种信息。
历史时间对应的历史值可以理解为历史时间内每一天的历史值,具体可以根据业务的历史数据获取得到。
在获取到历史时间的历史时间特征以及历史时间对应的历史值后,可以将历史时间特征以及历史值作为训练样本,采用GBDT算法进行模型训练,得到GBDT模型。
在训练得到GBDT模型后,在进行数据预测时,在获取到目标时间的时间特征后,可以将目标时间的时间特征作为GBDT模型输入,得到输出结果,输出结果即为所述第一预测值。其中,当目标时间为多天时,可以将每一天的时间特征分别作为GBDT模型的输入,并得到三个第一预测值。
在本申请的一个实施例中,在采用GBDT方法对所述历史时间特征以及所述历史值进行训练之前,还可以消除所述历史值的均值趋势和膨胀趋势。在消除均值趋势和膨胀趋势后,可以基于消除均值趋势和膨胀趋势的历史值和历史时间特征训练得到GBDT模型。这样,由于消除了历史值的均值趋势和膨胀趋势,因此,训练得到GBDT模型更为准确。
在本实施例中,可以首先消除历史值的均值趋势,然后基于消除均值趋势的历史值,进一步消除膨胀趋势。
在消除历史值的均值趋势时,可以包括:
采用一元线性回归算法对不同设定周期内不同单位时间的历史值进行拟合,得到一元线性回归方程ymn=xmnWm+Bm,其中,ymn为第m个设定周期内第n个单位时间的历史值,xmn为第m个设定周期内第n个单位时间,Bm为第m个设定周期对应的一元线性回归方程的截距,Wm为第m个设定周期对应的一元线性回归方程的斜率;
根据所述一元线性回归方程中的斜率和截距,通过以下方式消除所述历史值的均值趋势:Ymn=Amn-(Bm-B1)-Dm×Wm,其中,Ymn为第m个设定周期内第n个单位时间的历史值消除均值趋势后的值,Amn为第m个设定周期内第n个单位时间的历史值,B1为第1个设定周期对应的一元线性回归方程的截距,Dm为第m个设定周期。
所述设定周期以及设定周期内的单位时间具体可以根据所述目标时间确定,当所述目标时间以一天作为单位时间时,所述设定周期可以理解为一年,所述设定周期内的单位时间可以理解为一天。上述记载的m为整数且大于0,n为整数且大于0,n具体可以理解为某一年的第几天,例如,某年的1月2日可以理解为该年的第二天。
本实施例可以消除每年内每天的历史值的均值趋势。
例如,假设业务具有3年的历史数据,那么,针对第1年,可以基于第1年内每天的历史值和一元线性回归算法,拟合一元线性回归方程y1n=x1nW1+B1,其中,y1n为第1年第n天的历史值,x1n为第1年的第n天,B1为第1年拟合得到的一元线性回归方程的截距,W1为第1年拟合得到的一元线性回归方程的斜率。
针对第2年,可以基于第2年内每天的历史值和一元线性回归算法,拟合一元线性回归方程y2n=x2nW2+B2,其中,y2n为第2年第n天的历史值,x2n为第2年的第n天,B2为第2年拟合得到的一元线性回归方程的截距,W2为第2年拟合得到的一元线性回归方程的斜率。
针对第3年,可以基于第3年内每天的历史值和一元线性回归算法,拟合一元线性回归方程y3n=x3nW3+B3,其中,y3n为第3年第n天的历史值,x3n为第3年的第n天,B3为第3年拟合得到的一元线性回归方程的截距,W3为第3年拟合得到的一元线性回归方程的斜率。
在拟合得到3年内每年的一元线性回归方程后,可以根据每年各自拟合得到的一元线性回归的截距和斜率,计算每年每天的历史值消除均值趋势后的值。具体地:
针对第1年,可以根据公式Y1n=A1n-D1n×W1计算得到第1年第1天的历史值消除均值趋势后的值,其中,Y1n为第1年第n天的历史值消除均值趋势后的值,A1n为第1年第n天的历史值,W1为第1年拟合得到的一元线性回归方程的斜率,D1n为第1年第n天。
针对第2年,可以根据公式Y2n=A2n-(B2-B1)-D2n×W2计算得到第2年第n天的历史值消除均值趋势后的值,其中,Y2n为第2年第n天的历史值消除均值趋势后的值,A2n为第2年第n天的历史值,B1为第1年拟合得到的一元线性回归方程的截距,D2n为第2年第n天,W2为第2年拟合得到的一元线性回归方程的斜率。
针对第3年,可以根据公式Y3n=A3n-(B3-B1)-D3n×W3计算得到第3年第n天的历史值消除均值趋势后的值,其中,Y3n为第3年第n天的历史值消除均值趋势后的值,A3n为第3年第n天的历史值,B1为第1年拟合得到的一元线性回归方程的截距,D3n为第3年第n天,W3为第3年拟合得到的一元线性回归方程的斜率。
在消除每年每天的历史值的均值趋势后,可以基于消除均值趋势后的值,进一步消除历史值的膨胀趋势。
在消除历史值的膨胀趋势时,可以包括:
根据不同设定周期内的历史值,确定所述不同设定周期内历史值的平均值;
根据所述不同设定周期内历史值的平均值,通过以下公式确定所述不同设定周期内历史值的标准差:其中,σm为第m个设定周期历史值的标准差,μm为第m个设定周期历史值的平均值,xmi为第m个设定周期内第i个单位时间的历史值,N为所述设定周期内单位时间的个数;
根据多个所述设定周期内历史值的标准差,通过以下公式确定膨胀系数:pm=σm/σ1,其中Pm为第m年的膨胀系数,σm为第m年的标准差,σ1为第1年的标准差;
根据所述膨胀系数,通过以下公式消除所述历史值的膨胀趋势:Zmn=σm+(Amn-σm)*Pm,其中,Zmn为第m个设定周期内第n个单位时间的历史值消除膨胀趋势后的值,Amn为第m个设定周期内第n个单位时间的历史值。
当目标时间以天作为单位时间时,所述设定周期为一年,所述设定周期内的单位时间为一天,m和n可以与上述消除均值趋势中记载的m和n相同。
本实施例可以消除每年内每天的历史值的膨胀趋势。
仍以业务具有3年的历史数据为例,针对第1年,可以基于第1年内每天的历史值计算得到第1年的历史值的平均值;针对第2年,可以基于第2年内每天的历史值计算得到第2年的历史值的平均值;针对第3年,可以基于第3年内每天的历史值计算得到第3年的历史值的平均值。
在计算得到3年内每年的历史值的平均值后,可以根据每年的历史值的平均值,计算每年的历史值的标准差。具体地:
针对第1年,可以基于公式得到第1年的历史值的标准差,其中,μ1为第1年的历史值的平均值,x1i为第1年第i天的历史值,N为第1年的天数。
针对第2年,可以基于公式得到第2年的历史值的标准差,其中,μ2为第2年的历史值的平均值,x2i为第2年第i天的历史值,N为第2年的天数。
针对第3年,可以基于公式得到第3年的历史值的标准差,其中,μ3为第3年的历史值的平均值,x3i为第3年第i天的历史值,N为第3年的天数。
在得到3年内每年的历史值的标准差后,可以根据标准差确定每年的膨胀系数。具体地:
针对第1年,膨胀系数可以视为1。
针对第2年,可以基于公式p2=σ2/σ1得到第2年的膨胀系数,其中,σ2为第2年的标准差,σ1为第1年的标准差。
针对第3年,可以基于公式p3=σ3/σ1得到第3年的膨胀系数,其中,σ3为第3年的标准差,σ1为第1年的标准差。
在得到3年内每年的历史值的膨胀系数后,可以基于膨胀系数消除每年内每天的历史值的膨胀趋势。具体地:
针对第1年,可以基于公式Z1n=σ1+(A1n-σ1)*P1计算得到第1年每天的历史值消除膨胀趋势后的值,其中,σ1为第1年的标准差,A1n为第1年第n天的历史值,P1为第1年的膨胀系数。
针对第2年,可以基于公式Z2n=σ2+(A2n-σ2)*P2计算得到第2年每天的历史值消除膨胀趋势后的值,其中,σ2为第2年的标准差,A2n为第2年第n天的历史值,P2为第2年的膨胀系数。
针对第3年,可以基于公式Z3n=σ3+(A3n-σ3)*P3计算得到第3年每天的历史值消除膨胀趋势后的值,其中,σ3为第3年的标准差,A3n为第3年第n天的历史值,P3为第3年的膨胀系数。
在消除历史值的膨胀趋势后,可以将历史时间内每天消除膨胀趋势后的历史值以及历史时间特征作为训练样本,采用GBDT算法训练得到GBDT模型。
在本申请的另一个实施例中,在基于上述记载的方法训练得到GBDT模型后,还可以对GBDT模型进行验证。在进行模型验证时,用于验证的数据可以是业务的历史数据。
在一种实现方式中,为了便于对GBDT模型进行验证,在得到历史时间特征以及历史值的训练样本后,可以将训练样本拆分成两份,一份用于模型训练,另一份用于模型验证。其中,用于模型训练的样本数据需要多于用于模型验证的样本数据。优选地,用于模型训练的样本数据与用于模型验证的样本数据的数量比值为9:1。
例如,业务具有3年的历史数据,在根据这些历史数据确定3年内每天的历史时间特征和历史值后,可以将前32个月内每天的历史时间特征和历史值作为模型训练的样本数据,将后4个月内每天的历史时间特征和历史值作为模型验证的样本数据。
在验证GBDT模型时,可以将用于模型验证的样本数据作为GBDT模型的输入,得到用于模型验证的样本数据对应的预测值。
在得到预测值后,可以将预测值,与用于模型验证的样本数据对应的实际值进行比较,确定两者的偏差是否小于预设值(可以根据实际情况确定),若是,则可以确定训练得到的模型较为准确,可以用于后续的模型预测;若否,则可以确定训练得到的模型准确度较低,不能用于后续的模型预测。
当模型的准确度较低时,可以调整模型训练时的参数,例如,调整样本特征,增加用于模型训练的样本数据等,这里不再详细说明。
在基于上述记载的方法训练得到GBDT模型,并基于GBDT模型得到第一预测值后,可以执行S108。
S108:根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值。
在S108中,可以将S106中得到的第一预测值和S104中获取得到的移动平均值作为预先训练的线性回归模型的输入,得到输出结果,该输出结果为第二预测值,所述第二预测值可以视为数据的预测结果。
本申请实施例中,所述线性回归模型可以通过以下方法训练得到:
确定与所述历史时间对应的历史移动平均值;
将所述历史时间特征输入所述GBDT模型,确定得到回归样本值;
使用线性回归算法对所述历史移动平均值、所述历史时间特征以及所述回归样本值进行训练,得到所述线性回归模型。
具体地,在训练线性回归模型时,使用的样本数据可以包括历史时间内每天的历史移动平均值、回归样本值以及历史时间特征。其中,每天的历史移动平均值的个数可以是一个,也可以是多个。
在确定历史时间的历史移动平均值时,具体实现方式可以参见上述S104中记载的确定目标时间的移动平均值的内容,这里不再重复描述。
需要说明的是,不同历史时间对应的历史移动平均值的个数需要保持一致,且,在获取历史移动平均值时,使用的设定时间也需要保持一致。
例如,某一天的历史移动平均值的个数为4个,且分别根据该天之前的7天、15天、30天以及90天的历史值确定得到,那么,其他历史时间的历史移动平均值的个数也为4个,且分别根据其他历史时间之前的7天、15天、30天以及90天的历史值确定得到。
历史时间的历史时间特征,可以与上述S106中记载的历史时间特征相同,这里也不再重复描述。
所述回归样本值可以基于上述S106中记载的GBDT模型得到。具体地,可以将所述历史时间特征作为GBDT模型的输入,得到输出结果,该输出结果即为所述回归样本值。其中,所述回归样本值可以包括历史时间内每一天对应的回归样本值。
在得到历史移动平均值、回归样本值以及历史时间特征后,可以将历史移动平均值、回归样本值以及历史时间特征作为训练样本,采用线性回归算法进行模型训练,得到所述线性回归模型。
在本申请的一个实施例中,在基于上述记载的方法训练得到线性回归模型后,也可以对所述线性回归模型进行验证。在进行模型验证时,用于验证的数据可以是业务的历史数据。
在一种实现方式中,为了便于对线性回归模型进行验证,在得到历史移动平均值、回归样本值以及历史时间特征的训练样本后,可以将训练样本拆分成两份,一份用于模型训练,另一份用于模型验证。其中,用于模型训练的样本数据需要多于用于模型验证的样本数据。优选地,用于模型训练的样本数据与用于模型验证的样本数据的数量比值为9:1。
例如,业务具有3年的历史数据,在根据这些历史数据确定3年内每天的历史移动平均值、回归样本值以及历史时间特征后,可以将前32个月内每天的历史移动平均值、回归样本值以及历史时间特征作为模型训练的样本数据,将后4个月内每天的历史移动平均值、回归样本值以及历史时间特征作为模型验证的样本数据。
在验证线性回归模型时,可以将用于模型验证的样本数据作为线性回归模型的输入,得到用于模型验证的样本数据对应的预测值。
在得到预测值后,可以将预测值与用于模型验证的样本数据对应的实际值进行比较,确定两者的偏差是否小于预设值(可以根据实际情况确定),若是,则可以确定训练得到的模型较为准确,可以用于后续的模型预测;若否,则可以确定训练得到的模型准确度较低,不能用于后续的模型预测。
当模型的准确度较低时,可以调整模型训练时的参数,例如,调整样本特征,增加用于模型训练的样本数据等,这里不再详细说明。
在基于上述记载的方法训练得到线性回归模型后,在进行数据预测时,在基于GBDT模型确定第一预测值后,可以基于所述第一预测值、目标时间的移动平均值以及训练的线性回归模型,确定得到所述第二预测值。其中,当目标时间为多天时,可以得到多个第二预测值。
需要说明的是,为了保证预测结果的准确性,在进行模型训练时,如果使用的移动平均值对应的设定时间的最小值为N天,那么,在进行数据预测时,所述目标时间最大可以是N天。
例如,在进行模型训练时,历史移动平均值采用的是历史时间之前7天、15天、30天以及90天的移动平均值,那么,在进行数据预测时,在保证预测结果准确性的情况下,最多可以预测未来7天的值。
本申请实施例中,由于在训练线性回归模型时,使用了近期数据的移动平均值作为训练样本,因此,可以提升近期数据在线性回归模型中的权重,在基于线性回归模型进行数据预测时,能够将业务近期的变化考虑在内,从而得到准确度较高的预测结果。
在本申请的一个实施例中,为了进一步提高预测结果的准确性,在得到所述第二预测值后,还可以对所述第二预测值进行线性修正。具体地,可以使用预先训练的修正模型,对所述第二预测值进行修正,得到第三预测值,所述第三预测值可以视为预测结果。
所述修正模型可以通过以下方法预先训练得到:
获取对预设时间内的数据进行预测得到的预测值,所述预设时间在所述目标时间之前且接近所述目标时间;
获取所述预设时间内的的实际值;
采用一元线性回归算法对所述预测值以及所述实际值进行训练,得到所述修正模型。
所述预设时间可以是目标时间之前的一小段时间,具体可以是目标时间之前的15天、30天等。例如,目标时间是2018年10月1日,那么,所述预设时间可以是2018年9月16日至2018年9月30日,也可以是2018年9月1日至2018年9月30日。
本实施例中,为了得到较为准确的修正模型,同时兼顾业务近期的变化,所述预设时间可以优选目标时间之前的30天。
所述预设时间内的预测值可以基于本申请实施例提供的技术方案预测得到,所述预设时间内的实际值可以根据历史数据确定得到。
在得到预设时间内的预测值和实际值后,可以以实际值作为一元线性回归方程中的因变量,以预测值作为一元线性回归方程的自变量,拟合得到一元线性回归模型,该模型即为所述修正模型。
在训练得到修正模型后,在基于线性回归模型预测得到第二预测值时,可以将第二预测值作为所述修正模型的输入,得到述第三预测值,该第三预测值可以视为最终的预测结果。
本实施例中,由于基于近期数据的预测值和实际值训练得到修正模型,并根据修正模型对第二预测值进行修正,因此,得到的第三预测值的准确度比第二预测值的准确度高。
本申请实施例提供的技术方案,在基于历史数据进行模型训练时,可以根据最近一段时间的历史数据确定相应的移动平均值,并将移动平均值作为训练样本进行训练,得到预测模型。这样,由于在模型训练时,使用了近期数据的移动平均值作为训练样本,因此,可以提升近期数据在预测模型中的权重,在基于预测模型进行数据预测时,能够将业务近期的变化考虑在内,从而得到准确度较高的预测结果。在得到预测结果后,由于可以根据近期数据的预测值和实际值训练得到的修正模型对预测结果进行修正,因此,可以进一步提高预测结果的准确度。
为了便于理解整个技术方案,可以参见图2。图2为本申请的一个实施例数据预测方法的流程示意图。本申请实施例中,可以以一天作为单位时间,一年作为设定周期,且对业务在未来一天的数据进行预测。所述方法如下所述。
S201:采集历史数据。
在S201中,在对业务的数据进行测试之前,可以预先训练预测模型,在训练预测模型之前,可以采集业务的历史数据。
本实施例中,在采集得到历史数据后,还可以对历史数据进行预处理,这里的预处理可以是对历史数据进行数据清洗,去除其中不必要的或错误的历史数据。
S202:基于所述历史数据,确定历史时间内每天的历史时间特征以及历史值。
针对历史时间内的每一天,历史时间特征可以包括该天属于星期几、是上旬、中旬还是下旬,是否是节假日,以及季节中的至少一种。
S203:消除所述历史值的均值趋势。
在S203中,可以消除历史时间内每天的历史值的均值趋势,得到消除均值趋势后的历史值,具体实现方式可以参见图1所示实施例中记载的消除均值趋势的内容,这里不再重复说明。
S204:消除所述历史值的膨胀趋势。
在S204中,可以基于消除均值趋势后的历史值,进一步消除膨胀趋势。具体实现方式可以参见图1所示实施例中记载的消除膨胀趋势的内容,这里也不再重复说明。
S205:基于所述历史数据,确定历史时间内每天的历史移动平均值。
每天内的历史移动平均值的个数相同,可以是一个,也可以是多个,且每天的历史移动平均值可以基于相同的方法确定得到。
本申请实施例中,当目标时间为一天时,针对历史时间内的每一天,可以分别确定历史时间之前7天、15天、30天和90天的历史移动平均值。
S206:采用GBDT算法对所述历史时间内每天的历史时间特征以及历史值进行训练,得到GBDT模型。
在一种实现方式中,在采用GBDT算法进行训练之前,还可以将所述历史时间内每天的历史时间特征以及历史值构成的样本数据划分成两份,一份用于模型训练,另一份用于模型验证。
这样,在进行模型训练时,可以采用GBDT算法对用于模型训练的样本数据进行训练,在训练得到GBDT模型后,可以基于用于验证的样本数据进行模型验证。具体实现方式可以参见图1所示实施例中记载的相关内容,这里不再重复说明。
S207:将所述历史时间内每天的历史时间特征输入所述GBDT模型,得到回归样本值。
在得到GBDT模型后,可以将历史时间内每天的历史时间特征作为GBDT模型的输入,得到输出结果,该输出结果可以作为后续线性回归模型训练时的回归样本值,所述回归样本值包括所述历史时间内每天的回归样本值。
S208:使用线性回归算法对所述历史时间内每天的历史移动平均值、历史时间特征以及回归样本值进行训练,得到线性回归模型。
线性回归模型的训练样本包括历史时间内每天的历史移动平均值、每天的历史时间特征以及每天的回归样本值。
在一种实现方式中,在采用线性回归算法进行训练之前,也可以将所述历史时间内每天的历史时间特征、历史移动平均值以及回归样本值划分成两份,一份用于模型训练,另一份用于模型验证。
这样,在进行模型训练时,可以采用线性回归算法对用于模型训练的样本数据进行训练,在训练得到线性回归模型后,可以基于用于验证的样本数据进行模型验证。具体实现方式可以参见图1所示实施例中记载的相关内容,这里不再重复说明。
S209:使用所述GBDT模型以及所述线性回归模型对预设时间内的数据进行预测,得到预测值。
所述预设时间为所述历史时间中的距离当前时间较近的时间,例如,可以是当前时间之前的30天。
在对预设时间内的数据进行预测时,可以将所述预设时间内每天的历史时间特征和历史值作为所述GBDT模型的输入,得到样本回归值。在得到样本回归值后,可以将该样本回归值和所述预设时间内每天的历史移动平均值作为所述线性回归模型的输入,得到所述预测值。其中,所述预测值可以包含所述预设时间内每天的预测值。
S210:采用一元线性回归算法对所述预测值以及所述预设时间内每天的实际值进行训练,得到修正模型。
具体地,可以以S209中记载的实际值作为因变量,以S209中记载的预测值作为自变量,采用一元线性回归算法拟合得到一元线性回归方程,该一元线性回归方程即为修正模型。
所述修正模型可以用于后续对预测结果进行修正。
S211:获取目标时间的时间特征。
在S211中,在进行数据预测时,可以获取目标时间的时间特征。所述目标时间为业务在未来的某段时间。目标时间的时间特征需要与上述S202中记载的历史时间特征保持一致。
S212:获取与所述目标时间对应的移动平均值。
所述移动平均值可以根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间。
针对一天对应的移动平均值,移动平均值的个数可以是一个,也可以是多个,具体可以与上述S205记载的历史移动平均值的个数保持一致。当移动平均值的个数为多个时,不同的移动平均值可以根据不同设定时间内的历史值确定得到,具体实现方式可以参见图1所示实施例中记载的相关内容,这里不再重复说明。
S213:根据所述目标时间的时间特征以及所述GBDT模型,确定得到第一预测值。
在S213中,可以将所述目标时间的时间特征作为GBDT模型的输入,得到输出结果,该输出结果即为所述第一预测值。
S214:根据所述第一预测值、所述目标时间对应的移动平均值以及所述线性回归模型,确定得到第二预测值。
在S214中,可以将所述第一预测值以及目标时间对应的移动平均值作为线性回归模型的输入,得到输出结果,该输出结果即为所述第二预测值。
所述第二预测值可以视为预测结果。但是,为了进一步提高预测结果的准确度,还可以继续执行S215。
S215:使用所述修正模型,对所述第二预测值进行修正,得到第三预测值。
在S215中,可以将所述第二预测值作为修正模型的输入,得到输出结果,该输出结果即为所述第三预测值,所述第三预测值可以视为最终的预测结果。
本申请实施例提供的技术方案,采用GBDT和线性回归相结合的算法进行模型训练,可以解决由于样本数据的不稳定性和非线性导致训练得到预测模型预测结果不准确的问题;此外,在训练线性回归模型时,由于使用了近期数据的移动平均值作为训练样本,因此,可以提升近期数据在线性回归模型中的权重,在基于线性回归模型进行数据预测时,能够将业务近期的变化考虑在内,从而得到准确度较高的预测结果。
在得到预测结果后,由于可以根据预先训练的修正模型对预测结果进行修正,因此,可以进一步提高预测结果的准确度。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图3是本申请的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据预测装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取目标时间的时间特征;
获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
上述如本申请图3所示实施例揭示的数据预测装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1和图2的方法,并实现数据预测装置在图1所示实施例中的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1和图2所示实施例的方法,并具体用于执行以下操作:
获取目标时间的时间特征;
获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
图4是本申请的一个实施例数据预测装置40的结构示意图。请参考图4,在一种软件实施方式中,所述数据预测装置40可包括:第一获取单元41、第二获取单元42、第一预测单元43和第二预测单元单元44,其中:
第一获取单元41,获取目标时间的时间特征;
第二获取单元42,获取与所述目标时间对应的移动平均值,所述移动平均值根据设定时间内的历史值确定得到,所述设定时间在所述目标时间之前且接近所述目标时间;
第一预测单元43,根据所述时间特征以及预先训练的梯度提升决策树GBDT模型,确定得到第一预测值;
第二预测单元44,根据所述第一预测值、所述移动平均值以及预先训练的线性回归模型,确定得到第二预测值,所述第二预测值为预测结果。
可选地,所述第一预测单元43通过以下方式训练得到所述GBDT模型,包括:
获取历史时间的历史时间特征,以及所述历史时间对应的历史值;
使用GBDT算法对所述历史时间特征以及所述历史值进行训练,得到所述GBDT模型。
可选地,所述第二预测单元44通过以下方式训练得到所述线性回归模型,包括:
确定与所述历史时间对应的历史移动平均值;
将所述历史时间特征输入所述GBDT模型,确定得到回归样本值;
使用线性回归算法对所述历史移动平均值、所述历史时间特征以及所述回归样本值进行训练,得到所述线性回归模型。
可选地,所述第一预测单元43在使用GBDT算法对所述历史时间特征以及所述历史值进行训练之前,消除所述历史值的均值趋势和膨胀趋势。
可选地,所述第一预测单元43,消除所述历史值的均值趋势,包括:
基于一元线性回归算法以及不同设定周期内不同单位时间的历史值,拟合一元线性回归方程ymn=xmnWm+Bm,其中,ymn为第m个设定周期内第n个单位时间的历史值,xmn为第m个设定周期内第n个单位时间,Bm为第m个设定周期对应的一元线性回归方程的截距,Wm为第m个设定周期对应的一元线性回归方程的斜率;
根据所述一元线性回归方程中的斜率和截距,通过以下方式消除所述历史值的均值趋势:Ymn=Amn-(Bm-B1)-Dmn×Wm,其中,Ymn为第m个设定周期内第n个单位时间的历史值消除均值趋势后的值,Amn为第m个设定周期内第n个单位时间的历史值,B1为第1个设定周期对应的一元线性回归方程的截距,Dmn为第m个设定周期的第n个单位时间。
可选地,所述第一预测单元43,消除所述历史值的膨胀趋势,包括:
在消除所述历史值的均值趋势后,根据不同设定周期内的历史值,确定所述不同设定周期内历史值的平均值;
根据所述不同设定周期内历史值的平均值,通过以下公式确定所述不同设定周期内历史值的标准差:其中,σm为第m个设定周期历史值的标准差,μm为第m个设定周期历史值的平均值,xmi为第m个设定周期内第i个单位时间的历史值,N为所述设定周期内单位时间的个数;
根据多个所述设定周期内历史值的标准差,通过以下公式确定膨胀系数:pm=σm/σ1,其中Pm为第m年的膨胀系数,σm为第m年的标准差,σ1为第1年的标准差;
根据所述膨胀系数,通过以下公式消除所述历史值的膨胀趋势:Zmn=σm+(Amn-σm)*Pm,其中,Zmn为第m个设定周期内第n个单位时间的历史值消除膨胀趋势后的值,Amn为第m个设定周期内第n个单位时间的历史值。
可选地,所述第二获取单元42,获取与所述目标时间对应的移动平均值,包括:
确定所述设定时间内不同单位时间的历史值;
根据所述不同单位时间的历史值,通过以下公式获取得到所述移动平均值:F=(A1+A2+……+An)/n,其中,F为所述移动平均值,A1、A2、……、An为不同单位时间内的历史值,n为所述设定时间包含的单位时间的个数。
可选地,所述移动平均值的个数为多个,不同的移动平均值根据不同所述设定时间内的历史值确定得到。
可选地,所述数据预测装置40还包括修正单元45,其中:
所述修正单元45,在所述第二预测单元44确定得到所述第二预测值后,使用预先训练的修正模型,对所述第二预测值进行修正,得到第三预测值,所述第三预测值为预测结果。
可选地,所述修正单元45通过以下方式训练得到所述修正模型,包括:
获取对预设时间内的数据进行预测得到的预测值,所述预设时间在所述目标时间之前且接近所述目标时间;
获取所述预设时间内的实际值;
采用一元线性回归算法对所述预测值以及所述实际值进行训练,得到所述修正模型。
本申请实施例提供的数据预测装置40还可执行图1和图2的方法,并实现数据预测装置在图1和图2所示实施例的功能,本申请实施例在此不再赘述。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。