在对交通事故进行分析之前,需要对事故发生地点进行预处理。一般来讲,事故数据中发生地点是以地理位置存储的,如花园路、北京街、中山路等,而且一般不包括更为详细的省市信息。
在处理的过程中,一般先在前面加上省市的信息,如在贵阳交通事故致因数据分析大赛中,就可以在事故地点看加上贵阳市。
然后可以应用一些地址信息和地理信息转换网站提供的API等方法将地址信息转化为地理位置信息(经纬度数据)。
这样就可以根据这些经纬度坐标将事故的发生地点映射到地图上。
但这种方式在进行数据深入分析时,由于事故地点过于分散,分析的效果会不理想。当然我们可以采取纽约打车热点图的方式对地图进行渲染,但这种方法对各方面技术要求太高。
对于贵阳交通事故致因数据分析来说,可以采取地理分区影射的方法对地理位置进行影射,这样在作聚类分析或者关联分析时由于纬度值的减少会大大提高算法效率和聚类结果。
一种按照区域影射方法的思路如下:
1、将地图进行网格化
将贵阳市地图划分为大小相等的网格,根据需要分成合适的大小。例如分成20*20,400个区域。
2、对网格进行编码
对划分好的网格进行编码。例如由于网格大小为20*20,可以将每行按照字母从a到t命名,每列也按照从a到t命名。因此一个特定的区域可以表示成如下形式,as,pt等。
3、将事故发生地点映射到网格上
根据事故发生地点,将该数据映射到对应的区域。这样对于事故地点的预处理就将具体的地址信息转化为编码信息。这样在后续的数据挖掘中,例如使用Weka处理时,一方面避免了Weka对中文支持不足的问题,另一方面也提高了算法的效率。
4、制作事故发生地点热力图
可以对事故地点进行热力图渲染。就是按照事故地点对所有事故数据进行聚集操作,以每个区域事故发生数进行热力图渲染。
具体的处理方法切看下回分解。
第二种思路是按照道路进行影射。如果可以得到该地点的道路信息时,可以采用此方法。此方法处理思路如下:
1、道路分段
将地图内的道路进行分段处理,具体的分段方法且听下回分解。
2、路段编码
对划分好的路段进行编码。编码的方法有很多,在此不做详细介绍,请看后续介绍。
3、确定映射算法
由于由地址信息转化来的经纬度坐标可能出现映射到地图上之后不落在道路上,因此在确认这种点具体映射的路段时需要建立映射规则。映射规则的建立要根据实际情况构建,具体方法在此不做介绍。
3、对路段进行渲染
同样按照事故发生的路段对事故数据进行聚集操作,按照每个路段的事故数量对路段进行渲染。
4、计算事故多发点
根据上述操作,在得到各个路段的事故发生数量之后,可以进行事故多发点的识别工作。具体的事故多发点的定义及计算方法且听下回分解。但是在此指出,路段的划分方式对事故多发点的识别起到了很大的作用。
好了,以上是对事故发生地点的处理的一些思路,希望能对童鞋们的数据处理有所帮助。