本发明涉及机器学习方法和交通流预测等技术领域,具体涉及一种基于支持向量机和bp神经网络结合的交通流预测方法。
现有技术和
背景技术:
随着我国汽车产业的发展,城市及高速公路道路拥堵问题日益严峻,准确、及时的交通流信息对智能交通系统(intelligenttransportationsystem,its)的成功应用至关重要。它可以帮助道路使用者做出更好的出行决策,缓解交通拥堵,减少碳排放,并提高交通运行效率。而这些实现的前提和关键是能够对短时交通流量进行准确的预测,预测的准确度直接决定了交通运行的效率。
交通流预测模型主要分为时间序列模型,非参数回归模型和神经网络模型。早期的研究者们使用基于时间序列分析的参数化模型来预测交通。该模型不像其它时间序列方法一样需要固定的初始化模拟。它将某一时刻的交通流量看成是更为一般的非平稳随机序列,一般带有3个或6个模型参数。非参数回归是一种适合不确定的、非线性的动态系统的非参数建模方法。它不需先验知识,只需足够的历史数据,寻找历史数据中与当前点相似的“近邻”,并用那些“近邻”预测下一时刻值。因此,特别是在有特殊事件发生时,预测结果要比参数建模精确。美国联邦运输局在有关发展智能交通系统的报告中指出:先进的交通控制系统不仅应当具备已有系统的优点,更为重要的是要能充分利用不断积累的经验,有效地产生控制策略,使模型具有根据历史数据进行学习和经验积累的能力。eleni等综述了近十年来的交通流预测方法的研究成果,总结了交通流预测领域的十个挑战方向,然后指出研究者需要将统计数据和人工智能方法组合互补并提供统一的公共数据集来解决交通预测领域这些挑战,从而提高交通流预测性能。现有的技术中,如名称为“一种基于深度学习神经网络结构的交通流预测方法”(申请号为201510478215.9)利用深度编码器模型对采集的交通流数据进行训练,在训练过程中对深度自动编码器模型进行调整,最后利用调整后的深度自动编码器模型对短期交通流进行预测,提高了短期交通流预测的性能和精确度。
在交通流预测领域,现在最流行的方法是基于机器学习的非参数模型来预测短时交通流,该方法在大量不间断数据的基础上,拥有较高的预测精度,但需要复杂的参数估计,而且计算出的参数不能移植。在实际情况中,经常由于各种各样的原因容易造成数据遗漏,导致模型精度降低。目前的交通流预测算法仍大量依赖历史数据,在大量历史数据的基础上建立模型造成计算量巨大,导致交通流预测效率低下。
技术实现要素:
本发明要解决的技术问题是解决在短时交通流预测中,由于海量的交通流数据导致的支持向量机(svm)训练时间长,对计算机资源消耗大,预测性能较差,而bp(backpropagation)神经网络泛化能力差即对新鲜样本的适应能力差,预测结果容易产生过拟合等问题。
为解决上述问题,本发明提出通过将支持向量机和bp神经网络相结合的方法来预测短时交通流,减少对大量历史数据的依赖,提高预测性能及对新鲜样本的适应能力。具体的技术方案一种基于支持向量机和bp神经网络结合的短时交通流预测方法,包括如下步骤:
步骤1:采集历史交通流数据,利用归一化方法对交通流数据进行预处理,得到归一化后的数据集,将归一化后的数据集划分为训练数据集和测试数据集;
步骤2:利用svm模型对测试数据集进行预测分析,得到预测结果,使用bp神经网络模型对残差序列进行分析,得到修正后的残差序列;
步骤3:将svm模型所得到的预测结果与bp神经网络模型所得到的修正残差序列相加,得到最终的预测数据;
步骤4:将测试数据集和最终的预测数据进行比较,并分析误差。
进一步,上述步骤1中的归一化具体过程如下:
分别计算历史交通流数据某一个样本中的最小值min和最大值max,使用min-max标准化方法对数据进行归一化,使得归一化之后的交通流数据结果映射到[0-1]之间,即根据交通流数据集合f={ft|t=1,2,...,t}求得集合中的最大值max和最小值min,对集合中的每个数据计算:
式中x*表示归一化处理后的交通流数据,min表示样本数据中的最小值,max表示样本数据最大值,x表示待归一化处理的历史交通流数据。
步骤1中,归一化处理之后将历史交通流数据中百分之80的数据作为训练集,百分之20的数据作为测试集。
进一步,步骤2的具体包括以下步骤:
2.1:建立基于支持向量机和bp神经网络的交通流预测模型,利用归一化后的训练集样本训练svm模型用交叉验证找出优化后的参数c,γ,参数γ是sigmoid核函数的参数,参数c是svm惩罚函数的参数;
2.2:利用svm模型对原始数据进行预测分析,得到预测结果,记为
将svm模型所得到的预测结果与bp神经网络模型所得到的修正残差序列相加,得到最终的预数据,即,
步骤4包括:通过平均绝对百分比误差mape来对预测数据进行误差分析,计算公式如下:
式中
与现有技术相比,本发明的有益效果在于:
1、采用支持向量机和bp神经网络相结合的交通流预测方法,通过支持向量机模型对样本数据进行分析,使用较少的数据集得到较高的预测精确度,减少了计算量和计算难度。
2、解决了传统方法的泛化能力差即对新鲜样本的适应能力差,预测结果容易产生过拟合等问题。在很大程度上进一步提高了交通流预测的精确度,提高了预测的稳定性,不易出现明显错误。
附图说明
图1是支持向量机结构图。
图2是bp神经网络结构图。
图3是本发明的主要步骤流程图。
图4是支持向量机和bp神经网络组合模型结构图。
图5是本发明方法的预测结果与现有方法预测结果对比图。
具体实施方式
下面结合附图和实例对本发明做进一步的说明,应该指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
基于支持向量机和bp神经网络相结合的交通流预测方法,主要流程及其结构图如图3和图4所示,包括如下步骤:
步骤1:历史交通流数据的采集,利用归一化方法对交通流数据进行预处理,得到
归一化后的数据集,将归一化后的数据集划分为训练数据集和测试数据集;
步骤2:利用svm模型对测试集进行预测分析,得到预测结果,使用bp神经网络模
型对残差序列进行分析,得到修正后的残差序列。
步骤3:拿svm模型所得到的预测结果与bp神经网络模型所得到的修正残差序列相
加,得到最终的预测数据。
步骤4:将测试数据集和预测数据进行比较,分析误差。
交通流数据的采集:
交通流数据采集的方法有很多,主要有超声波检测、红外检测、微波传感器等方法获得。
获取的历史交通流量数据为特定观测点或路段在一定时间间隔内经过的车辆数。所述制定的时间间隔可以根据预测需求进行指定(例如5分钟)。
历史观测数据集合表示为f={ft|t=1,2,...,t},其中ft表示路网特定观测点获得的第t个历史交通流参数。t时刻和t+1时刻之间的差值为预测时间间隔δt(例如5分钟)。
分别计算历史交通流数据某一个样本中的最小值min和最大值max,使用min-max标准化(min-maxnormalization)方法对数据进行归一化,使得归一化之后的交通流数据结果映射到[0-1]之间。
具体地,根据交通流数据集合f={ft|t=1,2,...,t}求得集合中的最大值max和最小值min,对集合中的每个数据计算:
从而得到归一化之后的历史交通流数据,其中x*表示归一化处理后的交通流数据,min表示样本数据中的最小值,max表示样本数据最大值,x表示待归一化处理的历史交通流数据。
并且将历史交通流数据中百分之80的数据作为训练集,百分之20的数据作为测试集。
上述步骤2建立基于支持向量机和bp神经网络的交通流预测模型的建立步骤如下:
组合预测模型实际上是一种残差修正型组合模型,利用归一化后的训练集样本训练svm模型用交叉验证(crossvalidation)找出优化后的参数c,γ,参数γ是sigmoid核函数的参数,参数c是svm惩罚函数的参数即惩罚因子;
支持向量机的结构如图1所示。图1中,函数k为核函数,其种类主要有:
1线性核函数:k(x,xi)=xtxi;
2多项式核函数:k(x,xi)=(γxtxi+r)p,γ>0;
3rbf径向基核函数:k(x,xi)=exp(-γ||x-xi||2),γ>0
4sigmoid核函数:k(x,xi)=tanh(γxtxi+r)
本例中采用sigmoid核函数作为支持向量机的核函数。
惩罚因子c决定了离群点带来的损失的程度大小,c越大,对目标函数的损失也越大。
利用libsvmmatlab工具箱训练样本(本例采用libsvm工具箱完成参数寻优)
svm基于结构风险最小化原则,将整个求解过程转化为一个凸二次规划问题,其解全局最优且唯一。
利用svm模型对原始数据进行预测分析,得到预测结果,记为
残差在是指实际观察值与估计值之间的差。
bp神经网络是当前应用最广泛的神经网络之一。它是一种多层前馈网络,它按误差逆传播算法进行训练。bp神经网络学习和存储大量的输入和输出模式映射关系。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使得网络的误差平方和最小。bp神经网络模型的结构包括输入层,隐藏层和输出层。如图2所示。
bp神经网络中输入x到隐含层表示h的映射,表示为:h(x)=f(x)=σf(w+bn),σf为非线性激活函数,一般为sigmoid函数,其表达式为:
σ(x)=1/1+e-x
将svm模型所得到的预测结果与bp神经网络模型所得到的修正残差序列相加,得到最终的预测数据。即,
对测试数据集和预测数据比较,进行误差分析。具体的,误差可通过两个指标来评估,即平均绝对百分比误差(meanabsolutepercentageerror,mape)和均方根误差(rootmeansquareerror,rmse),他们的定义式如下:
其中f为交通流的观测值,