一种基于交通大数据的交通事故演化分析方法
技术领域
本发明具体涉及一种基于交通大数据的交通事故演化分析方法。
背景技术
大数据和人工智能的兴起, 掀起了人们对数据的挖掘和利用的热潮, 同时也标志着一个新的时代的到来。而随着大数据和人工智能的不断发展和深入, 各行各业都想通过大数据的方法, 来有效的利用已有的大规模数据, 并且挖掘其的内在价值, 为本行业创造更好地发展。
交通领域是一个非常重要的领域, 影响着人们的每日出行和时间效率。而大数据是智能交通的关键技术, 可有效地分析和解决日常生活中的交通问题。
现在, 互联网已经不再是传统意义上的一种信息化的网络, 它更像是一种结合了物质、信息、能量于一体的物联网。在时代的演变下, 互联网已经不再是一种普通意义的工具了, 已上升为了矛盾的主题, 从各个方面对传统行业进行了改造。
我国经济的快速发展,交通安全问题日益突出,已经引起了人们的广泛关注。如何对大量的交通事故信息进行数据挖掘,寻找出其中交通事故中隐藏的知识与规律,用以改善交通安全状况已成为数据挖掘的一个重要的研究领域。
现有技术中对大量数据的处理方式采用了基于Hadoop集群对大量数据进行分析和处理,因为Hadoop采用分布式计算方法能够同时对大量的数据进行并行处理,Hadoop是一个开源分布式计算平台,其核心主要包括HDFS(Hadoop Distrbuted Files System)分布式文件系统。
HDFS主要优点有高容错性、高伸缩性、高可靠性、高扩展性,它可以部署在低廉的硬件上,搭建分布式集群,构建分布式系统。
随着我国车速的提高及交通量的增长,道路交通事故数量每年都呈上升趋势。而现有的交通事故统计分析技术难以对未来交通事故发生的可能性进行精准预测。本发明通过Hadoop集群对大量交通事故数据进行挖掘和分析,并使用相关的算法,找出事故之间的相互联系。
发明内容
本发明的目的在于提供一种效率较高且安全可靠性高的基于交通大数据的交通事故演化分析方法,通过对交通事故大数据挖掘和分析,使用k-means聚类分析和Apriori关联规则分析交通事故的趋势和模式,找出事故频发的路段和引发事故的原因以及事故频发的高峰期。
本发明提供的基于交通大数据的交通事故演化分析方法,包括以下步骤:
S1数据采集,准备源数据,交通事故源数据来源于公共安全部门和交通部门下的事故数据仓库CTCDR,CTCDR允许对数据进行复杂的查询,属性包括日期、道路位置、道路类型、碰撞类型、伤害程度等,并通过用户自定义交通事故数据维度,进行更高级的数据分析识别趋势和模式;
S2数据预处理,在Hadoop集群中编写Mapreduce程序除去不相关的数据属性和数据类型,如在分析已发生交通事故与时间和地点有什么关联时,只需要关心事故发生的时间和地点即可,其他的交通事故属性可以删除掉;在分析道路与交通事故有什么联系时,只需关心交通事故道路属性数据就行,其他数据可以删除掉。
S3数据挖掘和分析,使用k-means聚类分析和Apriori关联规则分析,关联规则反映一个事物与其他事物之间的相互依赖性或相互关联性,将两种分析方法相结合,对已发生交通事故进行数据挖掘,从多个角度分析发生交通事故的原因,事故数据的维度包括:日期、事故伤害程度、事故地点和区域、事故影响因素、事故碰撞类型、天气条件、路面情况、建设或维护相关、光照条件、路拦等;交通个体数据的维度包括:车辆是否是有资格的发动机型号、车辆类型、车辆制动、车辆机动前缀、车辆机动后缀、驾驶员或行人的年龄、驾驶员或行人是否喝酒和吸毒、车辆出毛病的个数、首先撞上物体、然后撞上物体。涉及人员数据维度包括ID号、伤害分类、座位、年龄、保护系统的使用、安全气袋的状态、喷射状态,道路特性数据的维度包括平均日流量、农村或城市、通道数;
S4数据可视化,Tableau进行数据可视化,并将交通事故大数据分析的结果生成相应的图表图形,在图表图形可以看到各个因素的占比情况,如在查看天气因素是否与交通事故有关时,大数据可视化可以很直观的看出引起交通事故绝大部分都是在没有不利天气条件先发生的下雨或下雪对事故发生有较大的影响。
所述的S3的K-means聚类分析方法的具体过程如下:
数据进行预处理,对S2中数据在Hadoop集群中进行向量化处理,如在分析交通事故与事发时间地点有什么联系时,需将地点数据按时间和GPS经纬度进行向量化处理,然后将向量化的数据储存在HDFS文件系统中;
读入原始数据和参数,在Hadoop集群中将向量化得到的序列化文件上传要进行K-means聚类计算的目录中,并根据交通事故属性设计相关的参数,如在已发生交通事故时间属性中,可设置成12小时制和24小时制;
确定预聚类数,包括以下过程:(1)在Hadoop集群中将交通事故数据集向量化得到一个list后放入内存中,选择两个距离阙值:T1和T2。
(2)从list中任取一点P,用低计算成本方法快速计算点P与所有 Canopy之间的距离(如果当前不存在 Canopy,则把点P作为一个 Canopy)如果点P与某个 Canopy距离在T1以内,则将点P加入到这个 Canopy。
(3)如果点P曾经与某个 canopy的距离在T2以内,则需要把点P从list中删除,这一步是认为点P此时与这个 Canopy已经够近了,因此它不可以再做其它Canopy的中心了。
(4)重复步骤2、3,直到list为空结束,这样就到预聚类数k值。
将数据进行原始分类,用canopy算法得到的k值对交通事故数据进行原始分类,如果交通事故分类的结果不为k类,则继续对用K-means算法进行分类。
计算初始聚类的各类中心,使用二分K-means算法可以很好的确定各类中心;
计算聚类函数,将数据进行原始分类,进行调整每个属性类别,判断是否符合阀值,符合就输出结果,否则返回重新调整每个属性类别。
K-means聚类分析的原理:随机选取已发生交通事故的K个样本作为起始中心点,将其余样本归入相似度最高中心点所在的簇,再确立当前簇中交通事故样本坐标的均值为新的中心点,依次循环下去,直到所有样本类别不再变动,得到K个交通事故类,并得到聚类算法模型,能够将所有交通事故数据划分到所属的类中,同时得到m个交通事故信息的特征对聚类效果的重要性程度。
所述的S2的Apriori关联规则分析方法的具体过程如下:
Apriori关联规则分析方法是一种挖掘关联规则的频繁项集算法,设置最小支持度和最小置信度,产生频繁项集,关联分析数据源,某个项目集的支持度大于或等于最小支持度,则该项目集被标记为频繁项集。找出频繁项集,根据这些频繁项集可以得到候选关联规则,计算每条候选关联规则的置信度,筛选出大于最小置信度的关联规则,这些关联规则能够发现道路交通事故数据中各种属性的关联,以及驾驶员、车辆、道路、天气、时间等属性引起道路交通事故的原因因素与事故结果之间的规则,从中得到规律。
本发明提供的这种基于交通大数据的交通事故演化分析方法,采用k-means聚类算法对交通事故数据进行基于属性聚类分析,在属性聚类中,使得在一个类中的交通事故特性具有很高的相似性,并将每个类的交通事故原因当作一个整体来看;采用Apriori关联规则算法找到引起交通事故的多因素和各自的占比,运用多维关联规则挖掘方法建立Apriori关联规则挖掘模型,通过找出可能导致交通事故发生的频繁因素组合来发现某些事故发生的规律,并将这些规律作为现实中作出预防举措的依据。本发明通过对已发生的交通事故进行大数据分析,采用线性回归分析方法,构建了未来道路交通事故发生可能性评分卡,并在此基础上进行应用和评价;大数据分析表明,交通事故与驾驶员性别、年龄、驾驶年龄、车辆状况、天气情况、路况信息、驾驶时间段等因素有着重要关系,能够较好地预测交通事故发生的概率,该方法能够解决现有交通事故统计分析技术难以对未来交通事故发生的可能性进行精准预测的缺陷,为道路交通管理和决策提供强有力的支撑。
附图说明
图1为本发明的流程框图。
图2为本发明的K-means聚类算法流程图。
图3为本发明的Apriori算法流程图。
具体实施方式
如图1所示为本发明的流程框图,本发明提供的基于交通大数据的交通事故演化分析方法,包括以下步骤:
S1数据采集,准备源数据,交通事故源数据来源于公共安全部门和交通部门下的事故数据仓库CTCDR,CTCDR允许对数据进行复杂的查询,属性包括日期、道路位置、道路类型、碰撞类型、伤害程度等,并通过用户自定义交通事故数据维度,进行更高级的数据分析识别趋势和模式;
S2数据预处理,在Hadoop集群中编写Mapreduce程序除去不相关的数据属性和数据类型,如在分析已发生交通事故与时间和地点有什么关联时,只需要关心事故发生的时间和地点即可,其他的交通事故属性可以删除掉;在分析道路与交通事故有什么联系时,只需关心交通事故道路属性数据就行,其他数据可以删除掉。
S3数据挖掘和分析,本实施例中将k-means聚类分析和Apriori关联规则分析两种分析方法相结合,对已发生交通事故进行数据挖掘,从多个角度分析发生交通事故的原因。
根据不同的数据维度使用k-means聚类算法对已发生交通事故进行分类,需要对S2数据预处理的数据进行向量化处理,如在分析交通事故与事发时间地点有什么联系时,需要将S2的地点数据按时间和GPS经纬度进行向量化处理,以便更好对交通事故使用k-means聚类算法分类。
在用k-means聚类对交通数据进行分类之后,再使用Apriori关联规则分析已分类交通事故具体发生的原因与那些因素有关。Apriori关联规则分析可以已经发生交通事故与其他事物之间的相互依赖性和相关性,从多角度分析事故发生的原因。交通事故数据的维度包括:日期、事故伤害程度、事故地点和区域、事故影响因素、事故碰撞类型、天气条件、路面情况、建设或维护相关、光照条件、路拦;交通个体数据的维度包括:车辆是否是有资格的发动机型号、车辆类型、车辆制动、车辆机动前缀、车辆机动后缀、驾驶员或行人的年龄、驾驶员或行人是否喝酒和吸毒、车辆出毛病的个数、首先撞上物体、然后撞上物体。事故涉及人员数据维度包括ID号、伤害分类、座位、年龄、保护系统的使用、安全气袋的状态、喷射状态;道路特性数据的维度包括平均日流量、农村或城市、通道数。
采用Apriori关联规则算法可以找到引起交通事故的多因素和各自占比的情况,运用多维关联规则挖掘方法建立Apriori关联规则挖掘模型,找出可能导致交通事故发生的频繁因素组合来发现某些事故发生的规律,并将这些规律作为现实中作出预防举措的依据;
S4数据可视化,使用Tableau进行数据可视化,并将交通事故大数据分析结果生成相应的图表图形,在图表图形可以看到各个因素的占比情况,如在查看天气因素是否与交通事故有关时,大数据可视化可以很直观的看出引起交通事故绝大部分都是在没有不利天气条件先发生的下雨或下雪对事故发生有较大的影响。
参见图2,所述的S3的K-means聚类分析方法的具体过程如下:
数据进行预处理,对S2中数据在Hadoop集群中进行向量化处理,如在分析交通事故与事发时间地点有什么联系时,需将地点数据按时间和GPS经纬度进行向量化处理,然后将向量化的数据储存在HDFS文件系统中。
读入原始数据和参数,在Hadoop集群中将向量化得到的序列化文件上传要进行K-means聚类计算的目录中,并根据交通事故属性设计相关的参数,如在已发生交通事故时间属性中,可设置成12小时制和24小时制。
确定预聚类数,具体方法为:
(1)在Hadoop集群中将交通事故数据集向量化得到一个list后放入内存中,选择两个距离阙值:T1和T2;
(2)从list中任取一点P,用低计算成本方法快速计算点P与所有 Canopy之间的距离(如果当前不存在 Canopy,则把点P作为一个 Canopy)如果点P与某个 Canopy距离在T1以内,则将点P加入到这个 Canopy;
(3)如果点P曾经与某个 canopy的距离在T2以内,则需要把点P从list中删除,这一步是认为点P此时与这个 Canopy已经够近了,因此它不可以再做其它Canopy的中心了;
(4)重复步骤2、3,直到list为空结束,这样就到预聚类数k值。
将数据进行原始分类,用canopy算法得到的k值对交通事故数据进行原始分类。如果交通事故分类的结果不为k类,则继续对用K-means算法进行分类。
计算初始聚类的各类中心,为了克服K-means均值算法收敛于局部的问题,在本专利中使用了二分K-means算法,首先将所有的点作为一个簇,然后将该簇一分为二,之后选择其中一个簇继续划分,选择哪个簇进行划分取决于其划分是否可以最大程度程度降低误差平方和值,在事故数据向量化数据样本中使用二分K-means算法可以很好的确定各类中心。
将数据进行原始分类,进行调整每个属性类别,判断是否符合阀值,符合就输出结果,否则返回重新调整每个属性类别。
其中计算聚类函数的二分k-means算法的流程如下所示:
(1)把所有交通事故数据初始化为一个簇,将这个簇分为两个簇。
(2)选择满足条件的可以分解的簇。选择条件综合考虑簇的元素个数以及聚类代价(也就是误差平方和SSE),误差平方和的公式如下所示,其中wi表示权重值,y*表示该簇所有点的平均值。
(3)使用k-means算法将可分裂的簇分为两簇。
(4)一直重复(2)(3)步,直到满足迭代结束条件。
我们这里采用k-means算法中最常用的度量公式在欧式空间中的是欧式距离。
d为计算得到的欧式距离, x(x1,x2,…,xn),y(y1,y2,…,yn)为两个数据点,xi为x点中的第i个影响因素项数据,yi为y点中的第i个影响因素项数据。
以上过程隐含着一个原则是:因为聚类的误差平方和能够衡量聚类性能,该值越小表示数据点越接近于它们的质心,聚类效果就越好。所以我们就需要对误差平方和最大的簇进行再一次的划分,因为误差平方和越大,表示该簇聚类越不好,越有可能是多个簇被当成一个簇了,所以我们首先需要对这个簇进行划分。
所述的S3的Apriori关联规则分析方法的原理和具体过程如下:
我们得到的交通数据可以算作记作ti(i1,i2,…,in),ti为数据编号,ii为影响因素项。
令I=(i1,i2…,id)是数据中所有交通影响因素项的集合,T=(t1,t2,…,tm)是所有交通数据编号的集合。包含0个或多个项的集合被称为项集。如果一个项集包含k个项,则称它为 k-项集。显然,每个数据ti包含的项集都是I的子集。
关联规则是形如 X→Y的蕴涵表达式,其中X和Y是不相交的项集,即 X∩Y=∅。关联规则的强度可以用它的支持度和置信度来度量。支持度确定规则可以用于给定数据集的频繁程度,而置信度确定Y在包含X的中事故因素出现的频繁程度。支持度和置信度这两种度量的形式定义如下:
s(X→Y)=
c(X→Y)=
因此,本专利采用关联规则挖掘算法是将关联规则挖掘任务分解为如下两个主要的子任务。
1.频繁项集产生:其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。
2.规则的产生:其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则。
频繁项集产生所需的计算开销远大于产生规则所需的计算开销。最容易想到、也最直接的进行关联关系挖掘的方法或许就是暴力搜索的方法:
1.列出所有可能的关联项;
2.计算每一项的支持度和置信度;
3.修剪最小sup和最大conf阈值失败的规则(下文为修建规则)。
发现频繁项集的一种原始方法是确定格结构中每个候选项集的支持度计数。为了完成这一任务,必须将每个候选项集与每个交通数据进行比较,这种方法的开销可能非常大,因为它需要进行O(NMw)次比 较,其中N是数据数,M=2k-1是候选项集数,而w是交通数据的最大宽度(也就是交通数据中最大的项数)。我们必须设法降低产生频繁项集的计算复杂度。此时我们可以利用支持度对候选项集进行剪枝,这也是Apriori所利用的第一条先验原理:
Apriori定律1:如果一个集合是频繁项集,则它的所有子集都是频繁项集。
Apriori定律2:如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。
根据这两条定律可以更加有效率并节约很多计算时间得到研究结果。
参见图3,在交通Aprori关联规则算法流程图中,先扫描已经进行分类的交通事故数据库并对每一个数据编号的每一项进行计数,其中每一个数据编号的交通影响因素项的集合称为候选集,把同时交通因素个数称为支持数,在这个编号交通数据编号中出现的交通因素满足最小支持度阈值的所有项集,这些项集称作频繁项集。
交通Aprori关联规则算法核心思想是通对交通事故数据库扫描,在交通数据库中找出因素影响最多作为选集,因素数做支持数,凡是少于选集的交通事故称为频繁项集。为减少计算量,所以在交通Aprori关联规则算法它们是同步比较的,这样就可以在数据库中各个事故影响因素的比例情况了,出现最频繁的那个事故因素,也就是造成这类交通事故的最主要原因。