本发明涉及交通预测方法技术领域,尤其涉及一种基于markov的灰色verhulst短时交通流预测方法及系统。
背景技术:
随着城市化进程的不断加快,城市交通问题日益突出,在一定程度上影响其可持续发展。智能交通系统是缓解交通拥堵、避免交通事故发生的有效途径之一,而实时准确的短时交通流预测是智能交通系统中的关键。因此,短时交通流预测研究对智能交通系统的发展以及城市交通可持续发展有着重要的推进作用。目前,已有大量从事交通流量预测研究工作,如基于线性理论的预测模型侧重于从概率的角度挖掘交通流之间的时空相关信息来进行预测。该方法是线性模型,在预测非线性、不确定性的交通流时,模型性能变差;基于非线性的理论的预测模型主要包括基于小波分析的预测方法、基于混沌理论的预测方法等。但此类方法在交通流预测领域应用不多,还有待继续研究;基于机器学习的智能预测模型,这类方法主要包括:神经网络预测方法、深度学习等,这些方法在理论上存在缺陷,不能使期望风险最小化;其次是采用典型的黑箱型学习模式,在学习阶段需要大量的样本数据,在实际情况中,经常由于各种各样的原因容易造成数据遗漏,导致模型精度降低,而且依赖大量的历史数据,成本很高。
技术实现要素:
基于背景技术存在的技术问题,本发明提出了一种基于markov的灰色verhulst短时交通流预测方法及系统。
本发明提出的基于markov的灰色verhulst短时交通流预测方法,包括以下步骤:
s1、基于原始交通流量序列建立灰色verhulst模型,得出原始交通流量预测值;
s2、利用倒数变换和最小二乘法对原始交通流量预测值进行改进,得出初始预测值;
s3、利用markov链对初始预测值的残差进行修正,得到最终预测值。
优选地,其特征在于,步骤s1具体包括:
基于历史交通流量数据建立原始交通流量序列,记为:
x(0)={x(0)(1),x(0)(2),x(0)(3)...x(0)(n)};
其中,x(0)为原始交通流量序列,x(0)(k)为历史交通流量数据,x(0)(k)≥0,k=1,2,3...n;
对原始交通流量序列x(0)进行一次累加操作生成(1-ago),得到累加后序列:
x(1)=(x(1)(1),x(1)(2),…,x(1)(n));
其中,
x(1)的均值生成序列为:
建立灰色verhulst模型:
x(0)(k)+az(1)(k)=b(z(1)(k))2;
其中,参数a、b由最小二乘法求得:
灰色verhulst模型对应的白化微分方程为:
基于参数参数a、b得出上述白化微分方程的解:
以x(1)(1)=x(0)(1)为初始条件并代入上式,解得
得出灰色verhulst模型时间相应序列为:
对上式累减还原后得出原始交通流量预测值:
优选地,步骤s2具体包括:
设初值x′(0)(1),将初值x′(0)(1)代入灰色verhulst模型时间相应序列得到:
分别对序列x(1)和序列
其中,
利用最小二乘法原理建立目标函数f:
将y(1)和
令f对
整理得:
对上式取倒数得出初值
根据新的初值x′(0)(1)得
对上式累减还原后得出交通流量初始预测值为:
优选地,步骤s3具体包括:
获取残差序列ε(0)=(ε(0)(2),ε(0)(3),…,ε(0)(n));
其中,
将残差序列划分为s个状态,记为e={e1,e2,…,es};
计算状态转移概率矩阵:
其中,
以残差序列中待修正元素的前s个元素的状态为原始状态,依据其离待修正元素的远近分别转移1,2,……,s步,在转移步数所对应的转移矩阵中,取原始状态所对应的行向量组成新概率矩阵;
对新概率矩阵的列向量求和,得到待修正元素在每个状态区间的概率矩阵p:
p=[p1,p2,…,ps];
利用矩阵p加权平均得到修正的残差值:
其中,
得出最终预测值:
本发明提出的基于markov的灰色verhulst短时交通流预测系统,包括:
模型构建模块,用于基于原始交通流量序列建立灰色verhulst模型,得出原始交通流量预测值;
数据改进模块,用于利用倒数变换和最小二乘法对原始交通流量预测值进行改进,得出初始预测值;
残差修正模块,用于利用markov链对初始预测值的残差进行修正,得到最终预测值。
优选地,所述模型构建模块具体用于:
基于历史交通流量数据建立原始交通流量序列,记为:
x(0)={x(0)(1),x(0)(2),x(0)(3)...x(0)(n)};
其中,x(0)为原始交通流量序列,x(0)(k)为历史交通流量数据,x(0)(k)≥0,k=1,2,3...n;
对原始交通流量序列x(0)进行一次累加操作生成(1-ago),得到累加后序列:
x(1)=(x(1)(1),x(1)(2),…,x(1)(n));
其中,
x(1)的均值生成序列为:
建立灰色verhulst模型:
x(0)(k)+az(1)(k)=b(z(1)(k))2;
其中,参数a、b由最小二乘法求得:
灰色verhulst模型对应的白化微分方程为:
基于参数参数a、b得出上述白化微分方程的解:
以x(1)(1)=x(0)(1)为初始条件并代入上式,解得
得出灰色verhulst模型时间相应序列为:
对上式累减还原后得出原始交通流量预测值:
优选地,所述数据改进模块具体用于:
设初值x′(0)(1),将初值x′(0)(1)代入灰色verhulst模型时间相应序列得到:
分别对序列x(1)和序列
其中,
利用最小二乘法原理建立目标函数f:
将y(1)和
令f对
整理得:
对上式取倒数得出初值
根据新的初值x′(0)(1)得
对上式累减还原后得出交通流量初始预测值为:
优选地,所述残差修正模块具体用于:
获取残差序列ε(0)=(ε(0)(2),ε(0)(3),…,ε(0)(n));
其中,
将残差序列划分为s个状态,记为e={e1,e2,…,es};
计算状态转移概率矩阵:
其中,
以残差序列中待修正元素的前s个元素的状态为原始状态,依据其离待修正元素的远近分别转移1,2,……,s步,在转移步数所对应的转移矩阵中,取原始状态所对应的行向量组成新概率矩阵;
对新概率矩阵的列向量求和,得到待修正元素在每个状态区间的概率矩阵p:
p=[p1,p2,…,ps];
利用矩阵p加权平均得到修正的残差值:
其中,
得出最终预测值:
本发明提出的基于markov的灰色verhulst短时交通流预测方法,首先基于原始交通流量序列得到原始交通流量预测值,并将原始交通流量预测值作为待定参数,再利用倒数变换和最小二乘法对公式中的初值进行改进,根据新的初值求得交通流量初始预测值,使其预测的偏差达到最小,保证预测结果的准确性和有效性;最后利用markov链对预测所得到的残差进行修正,一方面有利于提高模型的精度,另一方面能够大大提高最终预测结果的精确性,从而为实际短时交通流的计算提供准确有效的参照基础。
附图说明
图1为一种基于markov的灰色verhulst短时交通流预测方法的步骤示意图;
图2为一种基于markov的灰色verhulst短时交通流预测系统的结构示意图;
图3为一种基于markov的灰色verhulst短时交通流预测方法及系统的实施例中原始数据与三种预测结果的比较示意图;
图4为一种基于markov的灰色verhulst短时交通流预测方法及系统的实施例中三种预测结果的误差比较示意图。
具体实施方式
如图1-图2所示,图1-图2为本发明提出的一种基于markov的灰色verhulst短时交通流预测方法及系统。
参照图1,本发明提出的基于markov的灰色verhulst短时交通流预测方法,包括以下步骤:
s1、基于原始交通流量序列建立灰色verhulst模型,得出原始交通流量预测值;
本实施方式中,步骤s1具体包括:
基于历史交通流量数据建立原始交通流量序列,记为:
x(0)={x(0)(1),x(0)(2),x(0)(3)...x(0)(n)};
其中,x(0)为原始交通流量序列,x(0)(k)为历史交通流量数据,x(0)(k)≥0,k=1,2,3...n;
对原始交通流量序列x(0)进行一次累加操作生成(1-ago),得到累加后序列:
x(1)=(x(1)(1),x(1)(2),…,x(1)(n));
其中,
x(1)的均值生成序列为:
建立灰色verhulst模型:
x(0)(k)+az(1)(k)=b(z(1)(k))2;
其中,参数a、b由最小二乘法求得:
灰色verhulst模型对应的白化微分方程为:
基于参数参数a、b得出上述白化微分方程的解:
以x(1)(1)=x(0)(1)为初始条件并代入上式,解得
得出灰色verhulst模型时间相应序列为:
对上式累减还原后得出原始交通流量预测值:
s2、利用倒数变换和最小二乘法对原始交通流量预测值进行改进,得出初始预测值;
本实施方式中,步骤s2具体包括:
设初值x′(0)(1),将初值x′(0)(1)代入灰色verhulst模型时间相应序列得到:
从上式可看出,直接由x(1)(k)和
其中,
为了计算出合理的
将y(1)和
分析上式得到f是关于
整理得:
对上式取倒数得出初值
根据新的初值x′(0)(1)得
对上式累减还原后得出交通流量初始预测值为:
s3、利用markov链对初始预测值的残差进行修正,得到最终预测值。
本实施方式中,步骤s3具体包括:
获取残差序列ε(0)=(ε(0)(2),ε(0)(3),…,ε(0)(n));
其中,
将残差序列划分为s个状态,记为e={e1,e2,…,es};一般以样本均值
计算状态转移概率矩阵:
其中,
以残差序列中待修正元素的前s个元素的状态为原始状态,依据其离待修正元素的远近分别转移1,2,……,s步,在转移步数所对应的转移矩阵中,取原始状态所对应的行向量组成新概率矩阵;
对新概率矩阵的列向量求和,得到待修正元素在每个状态区间的概率矩阵p:
p=[p1,p2,…,ps];
利用矩阵p加权平均得到修正的残差值:
其中,
得出最终预测值:
参照图2,图2为本发明提出的基于markov的灰色verhulst短时交通流预测系统,包括:
模型构建模块,用于基于原始交通流量序列建立灰色verhulst模型,得出原始交通流量预测值;
本实施方式中,所述模型构建模块具体用于:
基于历史交通流量数据建立原始交通流量序列,记为:
x(0)={x(0)(1),x(0)(2),x(0)(3)...x(0)(n)};
其中,x(0)为原始交通流量序列,x(0)(k)为历史交通流量数据,x(0)(k)≥0,k=1,2,3…n;
对原始交通流量序列x(0)进行一次累加操作生成(1-ago),得到累加后序列:
x(1)=(x(1)(1),x(1)(2),…,x(1)(n));
其中,
x(1)的均值生成序列为:
建立灰色verhulst模型:
x(0)(k)+az(1)(k)=b(z(1)(k))2;
其中,参数a、b由最小二乘法求得:
灰色verhulst模型对应的白化微分方程为:
基于参数参数a、b得出上述白化微分方程的解:
以x(1)(1)=x(0)(1)为初始条件并代入上式,解得
得出灰色verhulst模型时间相应序列为:
对上式累减还原后得出原始交通流量预测值:
数据改进模块,用于利用倒数变换和最小二乘法对原始交通流量预测值进行改进,得出初始预测值;
本实施方式中,所述数据改进模块具体用于:
设初值x′(0)(1),将初值x′(0)(1)代入灰色verhulst模型时间相应序列得到:
从上式可看出,直接由x(1)(k)和
其中,
为了计算出合理的
将y(1)和
分析上式得到f是关于
整理得:
对上式取倒数得出初值
根据新的初值x′(0)(1)得
对上式累减还原后得出交通流量初始预测值
残差修正模块,用于利用markov链对初始预测值的残差进行修正,得到最终预测值。
本实施方式中,所述残差修正模块具体用于:
获取残差序列ε(0)=(ε(0)(2),ε(0)(3),…,ε(0)(n));
其中,
将残差序列划分为s个状态,记为e={e1,e2,…,es};一般以样本均值
计算状态转移概率矩阵:
其中,
以残差序列中待修正元素的前s个元素的状态为原始状态,依据其离待修正元素的远近分别转移1,2,……,s步,在转移步数所对应的转移矩阵中,取原始状态所对应的行向量组成新概率矩阵;
对新概率矩阵的列向量求和,得到待修正元素在每个状态区间的概率矩阵p:
p=[p1,p2,…,ps];
利用矩阵p加权平均得到修正的残差值:
其中,
得出最终预测值:
本实施方式提出的基于markov的灰色verhulst-markov短时交通流预测方法和系统,首先基于原始交通流量序列得到原始交通流量预测值,并将原始交通流量预测值作为待定参数,再利用倒数变换和最小二乘法对公式中的初值进行改进,根据新的初值求得交通流量初始预测值,使其预测的偏差达到最小,保证预测结果的准确性和有效性;最后利用markov链对预测所得到的残差进行修正,一方面有利于提高模型的精度,另一方面能够大大提高最终预测结果的精确性,从而为实际短时交通流的计算提供准确有效的参照基础。
下面结合实施例对本发明做进一步说明:为了评价预测结果,本实施方式采取平均绝对百分比误差(meanabsolutepercenterror,mape)作为评价指标,指标计算公式如下:
由于离差被绝对化,不会出现正负相抵消的情况,所以平均绝对误差能更好的反映预测值误差的实际情况,其值越小表明模型的精度越高。
将原始数据分别代入传统灰色verhulst模型(模型一),改进初值的灰色verhulst模型(模型二)和本实施方式提出的基于markov的灰色verhulst模型(模型三),利用matlab计算出该模型的预测值和mape值,验证模型的精度。在(模型三)的求解中,考虑到残差序列分布较散,以样本均值
三个模型的预测结果及平均绝对百分比误差见表1、图3、图4:
表1.灰色verhulst模型及其改进的模型预测结果比较
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。