一种基于多维数据的交通异常点检测方法
技术领域
本发明涉及智能交通领域,尤其涉及一种基于多维数据的交通异常点检测方法。
背景技术
随着城市经济的快速发展,城市交通中机动车数量不断增加,如何有效调控交通流量,优化道路的使用效率,疏导道路的交通状况,成为城市智能交通领域研究的重点。而其中的一个关键技术就是对城市交通的异常进行检测,即通过一定的技术手段检测出城市交通中出现异常的路段。异常点的检测是城市交通公共信息服务的主要内容,也是交通管理部门部署警力、疏导道路交通的必要手段。交通异常点的检测一般是采用车流量数据进行分析,但该做法没有考虑交通数据本身特性,会将正常数据检测为异常,如出现红灯的时间不固定而导致的某时段某路段流量出现变化的情况。因此采用多指标数据检测交通道路异常点来克服单个指标的片面性和较大误差。在异常点检测中,通过采用技术手段对多指标数据进行分析计算,得出交通异常的路段,包括正异常和负异常,正异常指好的异常,即交通状态相比以前变好了;负异常指坏的异常,即交通状态相比以前变坏了,负异常的路段是交通管理部门重点关注的路段,因此本发明主要考虑负异常的情况。
目前对交通异常点检测的研究较少,一般只是单纯的拥堵检测。异常点检测可采用离群点检测的方法,主要有基于模型的方法,基于邻近度的方法,基于聚类的方法以及基于密度的方法。基于模型的方法要求事先知道数据服从什么分布,对多维数据的检测性较差;基于邻近度的方法不适用于交通大数据集,对参数选择较敏感,且无法满足交通数据分布不均匀的需求;基于聚类的方法其检测结果与簇类个数的选取有关,会出现误判现象,即使是不需预先选择簇类个数的DBSCAN方法对于簇的边界样本同样会出现误判,且不能较好反映多维数据;基于密度的方法能有效适用于分布不均匀的多维交通数据,且在交通异常点检测中对参数的选择不敏感。为了定量给出交通异常点,设计一种基于多维数据的交通异常点检测方法是十分有必要的。
发明内容
本发明为克服上述的不足之处,目的在于提供一种基于多维数据的交通异常点检测方法,该方法对微波设备获取的每条路段连续一段时间内的流量、速度和车道占有率数据,先根据速度数据计算路段的历史拥堵概率,通过对比最近时间的交通状态指标值定义路段的正、负异常,再从负异常的路段中用基于密度的局部异常因子方法计算异常度,并结合正负异常因子计算加权异常度。本发明方法采用多指标数据,考虑了样本空间数据分布不均匀的情况,通过结合交通数据本身特性,避免了基于密度的局部异常因子方法的局部有限性,能有效检测出道路异常点,帮助交管部门指挥道路交通,调节优化道路的使用效率。
本发明是通过以下技术方案达到上述目的:一种基于多维数据的交通异常点检测方法,包括如下步骤:
(1)采集微波监控路段的交通特征数据;
(2)计算每条路段的历史拥堵概率;
(3)根据每条路段的交通特征数据与历史拥堵概率来判断得到正负异常因子flag,并根据正负异常因子flag定义路段的正负异常;
(4)采用基于密度的局部离群因子算法计算异常度:
4.1)对输入的m*n数据D计算D中所有对象的K距离邻域,其中m为数据对象的个数,n为维度;
4.2)计算对象p与其K距离邻域对象的可达距离,其中可达距离是该对象的K距离与该对象和对象p的距离之间的较大值:
reach_dist_k(p,o)=max{K_distance(o),dist(p,o)};
4.3)计算对象p的局部可达密度:
lrd_k(p)=|N_k(p)|/Σo∈N_k(p)reach_dist_k(p,o)
其中局部可达密度是对象的K距离邻域内所有对象的可达距离之和与K距离邻域内的对象个数之比的倒数;
4.4)计算对象p的局部离群因子:
4.5)重复步骤4.1)至4.4),求出所有输入数据的局部离群因子,若有r条路段,每条路段有mr个数据对象,则可得到r个mr维的LOF序列,LOF值就是所求的异常度;
(5)通过正负异常因子flag与LOF值计算加权异常度;
(6)对步骤(5)得到的结果进行排序,得到前T个加权异常度最大的路段,T为预先设置的阈值;
(7)输出前T个加权异常度最大的路段。
作为优选,所述步骤(1)所述的交通特征数据包括微波监测路段的车流量、车辆速度、车道占有率三类数据。
作为优选,所述步骤(2)计算每条路段的历史拥堵概率是以车辆速度数据为对象,计算速度小于v的数据占有率;历史拥堵概率的计算式子如下所示:
其中,p(i)为第i条路段的历史拥堵概率,v(i)为第i条路段的微波速度数据,sum为求个数函数。
作为优选,所述步骤(3)判断并定义路段的正负异常的规则为若交通状态为畅通,则正负异常因子为flag=0-p;若交通状态为非畅通,则正负异常因子为flag=1-p;flag>0为负异常,flag≤0为正异常。
作为优选,所述步骤4.1)计算D中对象的K距离邻域的方法如下:
a)采用欧式距离或曼哈顿距离,数据D的距离矩阵为dist:m*m的对称矩阵,计算每两个对象间的距离;
b)对每个对象与其他对象的距离进行排序,第K个最小距离即为K距离K_distance;
c)得到每个对象的K距离邻域:
N_k(p)=(p|dist(p,q)≤K_distnce(p)}
其中每个对象的K距离邻域即为与其的距离不大于其K距离的对象的集合。
作为优选,所述步骤(5)计算加权异常度是以负异常路段的LOF异常度乘以代表历史拥堵概率的正负异常因子flag得到路段的加权异常度,计算式子如下:
WLOF(i)=LOF(i)last×flag(i)
其中,LOF(i)last是第i条负异常路段的最后一个LOF值,flag(i)是第i条路段的正负异常因子,WLOF(i)是第i条路段的加权异常度。
作为优选,所述的速度v为0km/h-20km/h中的任意一个速度值。
作为优选,所述的阈值T设置为5。
本发明的有益效果在于:(1)通用性强,本方法采用的是微波监控设备数据,能适用于大多数具有微波数据采集装备的城市和地区;(2)可行性强,路段某时段的异常度是通过其历史数据计算得到,只要给出历史数据,就能计算路段的异常度;(3)可靠性高,本方法结合流量、速度和车道占有率三个指标,检测结果更加真实可靠;(4)适用性强,本方法采用基于密度的局部异常因子方法,能适用于数据样本分布不均匀的情况,具有较高的适用性。
附图说明
图1是本发明基于多维数据的交通异常点检测方法流程图。
具体实施方式
下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:
实施例:如图1所示,一种基于多维数据的交通异常堵点检测方法包括以下步骤:
步骤1:以杭州城内设置微波设备的所有微波监测路段为采集对象,以2014-3-1到2014-8-1连续5个月的所有工作日的09:30时刻为采样时段,统计09:25到09:30的5分钟时间内通过微波监测路段的流量、速度和车道占有率,以数据缺失率小于10%的路段为目标,满足条件的路段共有308个,每个路段有多个三维数据。
微波设备采集的微波监测路段交通状态数据部分数据如表1所示,其中WAVE_ID是微波号,每个ID代表一个路段,中间三项是交通流量、速度和车道占有率数据,COLLECT_DATE是采集日期,是2014-03-01到2014-08-01连续五个月的所有工作日,COLLECT_TIME是采集时间,是前面日期里每天09:30的数据。
表1
步骤2:计算每个路段的历史拥堵概率。历史拥堵概率以采集的微波速度数据为对象,计算速度小于20的数据占有率,即每个路段的历史拥堵概率为:
其中,v(i)为308条路段中第i条路段的所有微波速度数据,sum为求个数函数。
表2所示的为308条路段的历史拥堵概率的部分数据。
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
0.1340 |
0.0206 |
0.0103 |
0 |
0.1443 |
0.2680 |
0.0103 |
0.0206 |
0.5676 |
0.2660 |
表2
步骤3:定义路段的正负异常。根据每个路段最近抽样时间的流量、速度和车道占有率数据(最后一个抽样数据),判断该时间的交通状态,若交通状态为畅通,则正负异常因子为flag=0-p;若交通状态为非畅通,则正负异常因子为flag=1-p。flag>0则为负异常,falg≤0则为正异常。交通状态的判断标准为:
(1)速度小于20,车道占有率大于0.5,则为拥堵;
(2)速度大于等于25,车道占有率小于0.3,则为畅通;
(3)上述两种情况之间的为非畅通,非畅通和拥堵都属于非畅通情况。
经判断,308条路段中有149条属于负异常路段。
步骤4:计算异常度。异常度的计算采用基于密度的局部离群因子方法,算法思想如下:
(1)每个路段的数据都是m*3的矩阵D,m为数据对象的个数,与路段含有数据个数有关,3为维度。计算D中所有对象的K距离邻域,本发明中K取值为10。
先计算每两个对象间的距离,本发明中采用欧式距离,若路段含有m个数据对象,则矩阵D的距离矩阵dist为m*m的对称矩阵,第i行表示第i个数据对象与其他对象的距离。对每个对象与其他对象的距离排序,第K个(K=10)最小距离即为K距离K_distance,每个对象的K距离邻域即为与其的距离不大于其K距离的对象的集合:
N_k(p)={p|dist(p,q)≤K_distance(p)}
(2)计算对象p与其K距离邻域内所有对象的可达距离,可达距离是该对象的K距离与该对象和对象p的欧式距离间的较大值:
reach_dist_k(p,o)=max{K_distance(o),dist(p,o)}
(3)计算对象p的局部可达密度:
lrd_k(p)=|N_k(p)|/Σo∈N_k(p)reach_dist_k(p,o)
局部可达密度是对象的K距离邻域内所有对象的可达距离之和与K距离邻域内数据对象个数的比值的倒数。
(4)计算对象p的局部离群因子:
重复上述步骤求出所有输入数据的局部离群因子,149条路段有149个不同长度的LOF序列,即每条负异常路段都有一个异常度序列。表3所示的为部分负异常路段的LOF异常度值。
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
3.7607 |
2.8014 |
2.5988 |
2.5064 |
2.1172 |
1.9900 |
1.9076 |
1.7892 |
1.7130 |
1.6501 |
表3
步骤5:计算加权异常度。现在已得到149条负异常路段的LOF异常度序列和代表历史拥堵概率的正负异常因子flag,为考虑路段的历史交通状况以及交通数据本身特性,以LOF异常度乘以负异常路段的正负异常因子flag作为路段的加权异常度,即:
WLOF(i)=LOF(i)last×flag(i)
其中,LOF(i)last是第i条负异常路段的最后一个LOF值,flag(i)是第i条路段的正负异常因子,WLOF(i)是第i条负异常路段的加权异常度。
步骤6:对加权异常度进行排序。对149条负异常路段,有149个加权异常度,对其进行排序,得到前T个异常度最大的路段,T为预设的阈值,取值为5。
表4所示的为排序后的部分负异常路段的加权异常度值。
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
3.6444 |
2.7692 |
2.4548 |
1.9628 |
1.9485 |
1.9077 |
1.6951 |
1.6501 |
1.6294 |
1.5863 |
表4
步骤7:输出加权异常度较高的重点路段。根据之前的计算,输出5个异常度最高的负异常路段。
前5个加权异常度最大的负异常路段为WAVE_ID=241、WAVE_ID=26、WAVE_ID=53、WAVE_ID=205以及WAVE_ID=94的路段。表5-表9所示的为前5个加权异常度最大的负异常路段异常时段的流量、速度和车道占有率与历史数据的对比。这5条路段的加权异常度对应的数据与大部分历史数据相比,速度下降幅度较大,车道占有率明显增大,即可判断这些路段对应时段交通状况变差,有异常情况发生,证明本发明对交通异常点检测的结果是正确的。
表5所示的为WAVE_ID=241的路段流量、速度和车道占有率数据。
55 |
41.1700 |
10.6700 |
42 |
41.3300 |
7.3300 |
39 |
29.5000 |
24 |
50 |
41.5000 |
9.3300 |
43 |
33.1700 |
18 |
47 |
46.1700 |
9 |
54 |
44 |
9.8300 |
42 |
24.3300 |
26.1700 |
35 |
6 |
48 |
43 |
37.3300 |
11.3300 |
46 |
40.5000 |
9.5000 |
46 |
44.5000 |
9.1700 |
45 |
29 |
11.6700 |
40 |
44.3300 |
7.3300 |
43 |
36.6700 |
9.6700 |
33 |
8.1700 |
73.8300 |
表5
表6所示的为WAVE_ID=26的路段流量、速度和车道占有率数据。
表6
表7所示的为WAVE_ID=53的路段流量、速度和车道占有率数据。
表7
表8所示的为WAVE_ID=205的路段流量、速度和车道占有率数据。
71 |
37.3300 |
17.1700 |
58 |
40.1700 |
11.8300 |
72 |
41.8300 |
15.3300 |
59 |
43.5000 |
12.5000 |
67 |
43.6700 |
11.5000 |
60 |
28 |
22.1700 |
70 |
41 |
15.6700 |
58 |
47.6700 |
10.1700 |
55 |
36.6700 |
12.1700 |
65 |
45 |
12.8300 |
65 |
42.8300 |
12.5000 |
52 |
26.3300 |
32.1700 |
76 |
38.8300 |
14.3300 |
63 |
38.3300 |
14.1700 |
64 |
40.6700 |
13 |
49 |
15 |
41.8300 |
表8
表9所示的为WAVE_ID=94的路段流量、速度和车道占有率数据。
表9
以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。