本发明涉及一种高速公路交通状态识别方法,特别涉及一种基于蝙蝠算法支持向量机的高速公路交通状态识别方法。
背景技术
随着高速公路交通需求量的增加,交通拥挤,交通事故,尾气污染等问题不断增加,严重危害了道路交通安全。交通状态识别的研究,使得这些问题以某种可预见性的方式呈现,为交通的参与者与指挥者提供动态决策依据。交通状态识别的研究方法大致分为直接方法和间接方法,早期的人工交通疏散,以及通过视频图像监控来识别交通状态的方法属于直接法;利用交通检测器采集交通流监测数据,并通过分析识别交通状态的方法属于间接法。
支持向量机(supportvectormachine,svm)具有小样本学习能力强,泛化能力高的特点,可以很好的运用在在高速公路交通状态分类识别中。而支持向量机的参数设定,影响其分类精度。蝙蝠算法作为一种新型元启发式算法,在参数优化求解问题中准确率高,泛化能力强。
技术实现要素:
本发明为克服上述现有技术所述的至少一种缺陷,提供一种基于蝙蝠算法支持向量机的高速公路交通状态识别方法,在一定程度上优化了支持向量机,提高了收敛能力和识别精度。
为解决上述技术问题,本发明采用的技术方案是:一种基于蝙蝠算法支持向量机的高速公路交通状态识别方法,包括以下步骤:
s1.获取影响高速公路交通状态的参数数据,并对参数数据进行归一化处理;天气状况用w表示,w∈[0,1],天气状况越好,数值越大。可选的:晴天,w=1;阴天,w=0.8;小雨,w=0.6;薄雾,w=0.4;中雨,w=0.3;
s2.获取高速公路交通运行状态数据,并对数据进行量化处理;设置交通状态等级,道路运行状态越好,等级越低。可选的,将交通状态设置为5个等级,畅通=1、缓行=2、轻度拥挤=3、拥挤=4、拥堵=5;
s3.将s1步骤和s2步骤获取的数据集划分为训练集和测试集;
s4.设置支持向量机的核参数g和惩罚参数c;
s5.构造与支持向量机核参数和惩罚参数对应的蝙蝠种群,并将种群初始化;其中,每一个蝙蝠个体xi对应一组(c,g),初始化蝙蝠的位置为xi、速度为vi、脉冲发射率为ri、脉冲响度为ai、脉冲频率fi,i=1,2,…,q,q为种群数量,ri∈[rmin,rmax],ai∈[amin,amax],fi∈[fmin,fmax];
s6.将支持向量机的分类精度作为适应度函数值fi,计算得到最优蝙蝠的位置x*和适应度f*;
s7.更新蝙蝠算法参数;
s8.对每一个蝙蝠个体产生随机数,若
xnew(i)=xold+εa',
式中,xnew(i)为新解,xold为当前最优解集中的任意一个解,a'为蝙蝠的平均响度,ε∈(0,1)的随机向量,
s9.运用遗传算法对蝙蝠个体进行择优;
s10.对每个蝙蝠个体产生随机数,若
at+1=α×at(i)
rt+1(i)=r0(i)×[1-exp(-rt)]
式中,α∈(0,1)为响度衰减因子,r0(i)为最大的脉冲发射率,rt+1(i)为蝙蝠个体在t+1时刻脉冲发射率,r为脉冲发射率的增加因子,
s11.重新排列蝙蝠,得到当前蝙蝠群体位置的全局最优解xbest;
s12.若达到最大迭代次数,输出最优参数,算法结束,否则转入s6步骤;
s13.根据s12步骤输出的结果,确定最优的核参数g和惩罚参数c;
s14.将训练集放入支持向量机模型中进行训练,建立支持向量机模型;
s15.将输出的预测状态与测试集进行对比,计算识别精度。
进一步地,所述的s1步骤中的交通状态的参数包括天气状况、车流量、时间平均速度、时间占有率。
进一步地,所述的s1步骤中采用最大-最小标准化进行归一化处理。
进一步地,所述的s5步骤中,采用混沌优化策略进行种群初始化操作,包括以下步骤:
s51.选用logistic映射产生混沌序列,计算公式如式:
xk+1=μxk(1-xk),μ∈(2,4]
式中,μ∈[0,4]为logistic参数,当μ=4时候,系统陷入完全混沌状态;k为迭代次数,xk为初始化的蝙蝠个体,xk的变化范围为xk∈[0,1];
s52.将上述公式进行n次迭代以后,映射到混沌空间,其中n为种群个数,最大迭代次数也为n;
s53.将这n个混沌变量加载到待优化变量的取值范围中;
s54.将n个变量按照下式进行计算,使得个体位置的变化范围由原来的[0,1]变为[xmin,xmax],其公式为:xi=xmin+xi(xmax-xmin),xi为映射到混沌空间后的蝙蝠个体。
进一步地,所述的s7步骤中更新蝙蝠算法参数,包括将每个蝙蝠的速度更新为
蝙蝠的速度更新公式:
式中,
式中,ω的取值范围为(0,1),ωmin为权重最小值,ωmax为重最大值值,t为当前迭代次数,tmax最大迭代次数;b1,b2为实数;
蝙蝠频率更新公式为:
fi=c[fmin+(fmax-fmin)×rand]
式中,fi为搜索的频率,fmax为频率的最大值,fmin为频率的最小值,rand为(0,1)的随机数,c为动态调节因子;c按下式计算:
式中,r1,r2为初始设定的常数,且r1>r2;
蝙蝠位置更新公式为:
式中,
进一步地,所述的s9步骤具体包括:
s91.计算所有蝙蝠的适应度函数值,并按适应度大小进行排序;
s92.剔除适应度较差的1/4蝙蝠个体,并且复制剩余个体中适应度居中的1/3个体,替换剔除的蝙蝠个体;
s93.在现有的蝙蝠个体中随机选择两组数据,每组两个蝙蝠个体,将每组中适应度较高的个体按照以下公式进行速度和位置交叉操作,剩余的两个体继续进行蝙蝠的更新;
位置交叉公式为:
速度交叉公式为:
s94.按照以下公式,以1/10的变异概率选取蝙蝠种群进行变异操作,公式为:
与现有技术相比,有益效果是:本发明提供的一种基于蝙蝠算法支持向量机的高速公路交通状态识别方法,在一定程度上优化了支持向量机,提高了收敛能力和识别精度;本发明的识别方法具有科学、客观、识别精度高的特点,可以较好的运用到高速公路交通状态识别当中去。
附图说明
图1是本发明方法流程图。
图2是本发明实施例中基本支持向量机的高速公路交通状态识别结果。
图3是本发明实施例中高速公路交通状态识别结果。
具体实施方式
附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
实施例1:
将本发明具体实施到广东省某城市的高速公路交通状态识别中,其步骤如下:
s1、获取广东省某高速监测系统采集到的为期一周的高速公路参数数据,并用最大-最小标准化处理。包括:天气状况,车流量,时间平均速度,时间占有率。每天的采集时间为:00:00-23:55,时间间隔为5min,共2016组有效数据。其中,天气状况用w表示,w∈[0,1],天气状况越好,数值越大。可选的:晴天,w=1;阴天,w=0.8;小雨,w=0.6;薄雾,w=0.4;中雨,w=0.3。
s2、获取高速公路交通运行状态数据,并量化处理。设置交通状态等级,道路运行状态越好,等级越低。可选的,将交通状态设置为5个等级,畅通=1、缓行=2、轻度拥挤=3、拥挤=4、拥堵=5。
s3、将数据集划分为训练集,测试集,随机选取1866个数据集作为训练集,150个数据集作为测试集。
s4、设置支持向量机的核参数和惩罚参数。将径向基函数作为支持向量机的核函数。g表示核参数,c表示惩罚函数。其中c,g的取值范围为c∈[1,28],g∈[2-4,26]。
s5、构造与支持向量机核参数和惩罚参数对应的蝙蝠种群,并将种群初始化。每一个蝙蝠个体xi对应一组(c,g)。初始化蝙蝠的位置为xi、速度为vi、脉冲响度为ai=0.25、脉冲频率fi=0.3,i=1,2,…,30,ri∈[0,1],ai∈[0,1],fi∈[0,2],最大迭代次数为50。
具体地,用混沌优化策略进行种群初始化操作,包括以下步骤:
s51、选用logistic映射产生混沌序列,计算公式如式(1)
xk+1=μxk(1-xk),μ∈(2,4](1)
当μ=4时候,系统陷入完全混沌状态;k为迭代次数,xk的变化范围为xk∈[0,1]。
s52、将式(1)进行30次迭代以后,映射到混沌空间,如(x1,x2,…x30)
s53、将这30个混沌变量加载到待优化变量的取值范围中,例如蝙蝠的位置范围[xmin,xmax]。
s54、将30个变量按照式(2)进行计算,使得个体位置的变化范围由原来的[0,1]变为[xmin,xmax]。
xi=xmin+xi(xmax-xmin)。(2)
s6、将支持向量机的分类精度作为适应度函数值fi,并计算,得到最优蝙蝠的位置x*和适应度f*。
s7、更新每个蝙蝠的速度
s71、按式(3)更新蝙蝠速度
其中,
式(3)中的ω按式(4)计算
其中,ω的取值范围为(0,1),ωmin为权重最小值,ωmax为重最大值值,t为当前迭代次数,tmax最大迭代次数。其中令ωmin=0,ωmax=1,b1=1,b2=10,tmax=50。
按式(5)更新蝙蝠频率:
fi=c[fmin+(fmax-fmin)×rand](5)
其中,fi为搜索的频率,fmax为频率的最大值,fmin为频率的最小值,rand为(0,1)的随机数,c为动态调节因子。
式(5)中的c按式(6)计算
其中r1,r2为初始设定的常数,r1=4,r2=2,tmax=50。
按式(7)更新蝙蝠位置
其中
s8、对每一个蝙蝠个体产生随机数,若
xnew(i)=xold+εa'(8)
式中,xnew(i)为新解,xold为当前最优解集中的任意一个解,a'为蝙蝠的平均响度,ε∈(0,1)的随机向量,
s9、运用遗传算法对蝙蝠个体进行择优。具体包括以下步骤:
s91、计算所有蝙蝠的适应度函数值,并按适应度大小进行排序。
s92、剔除适应度较差的1/4蝙蝠个体,并且复制剩余个体中适应度居中的1/3个体,替换剔除的蝙蝠个体。
s93、在现有的蝙蝠个体中随机选择两组数据,每组两个蝙蝠个体,将每组中适应度较高的个体按照式(9),式(10)进行交叉操作,剩余的两个体继续进行蝙蝠的更新。
位置交叉公式为:
速度交叉公式为:
s94、按照公式(11),以1/10的变异概率选取蝙蝠种群进行变异操作。
s10、对每个蝙蝠个体产生随机数,若
at+1=α×at(i)(12)
rt+1(i)=r0(i)×[1-exp(-rt)](13)
其中α∈(0,1)为响度衰减因子,α=0.8。r为脉冲发射率的增加因子,γ=0.9。r0(i)为最大的脉冲发射率,r0(i)=0.99,rt+1(i)为蝙蝠个体在t+1时刻脉冲发射率。
s11、重新排列蝙蝠,得到xbest=(6.884,0.731)
s12、若达到最大迭代次数,输出最优参数,算法结束。否则转入s6。
s13、确定支持向量机最优的惩罚参数c和g。由最优蝙蝠个体得c=6.884,g=0.731
s14、将训练集放入支持向量机模型中进行训练,建立svm模型。
s15、将输出的预测状态与测试集进行对比。基本支持向量机模型的识别准确率为91.33%,基于蝙蝠算法支持向量机的识别准确率为97.33%,识别的准确率有所提高。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。