一种基于Spark平台的短时交通流量预测方法技术

技术编号:14014600 阅读:698 留言:0更新日期:2016-11-17 19:09
本发明专利技术在一种基于Spark平台的短时交通流量预测方法,将并行化的KNN算法应用于短时交通流预测领域。相比基于单机计算的传统KNN算法而言,该方法解决了在单台物理机上进行数据计算时,系统存储容量小、计算速度慢的问题,也解决了KNN算法近邻查找过程中近邻匹配效率过低的问题。该方法在保证预测精度的前提下,提高了算法的计算效率,有效的改善了KNN预测算法的实用性,并且系统具有良好的扩展性和加速比。本发明专利技术对于其他需要对大规模数据进行处理的应用也具有参考意。

【技术实现步骤摘要】

本专利技术属于云计算和数据挖掘领域,具体涉及基于Spark平台的短时交通流量预测方法
技术介绍
短时交通流量预测是指对特定路段未来几分钟的车流量做出预测。短时交通流量预测是解决城市交通拥堵的重要途径,而随着城市汽车数量的增加,交通流量的数据量急剧增加。单机进行基于位置数据的短时交通流量预测面临着数据量大存储困难、计算时间长等问题。而云计算平台在海量数据存储和大规模并行实时处理方面具有强大的技术优势,可以在保证预测精度的前提下,有效的提高短时交通流量预测的计算效率。在众多分类算法中,KNN算法是一种最简单常用的算法,KNN算法预测精度很高,但由于在相似度计算过程中,每一个待分类的样本都要计算它到所有已知样本的距离,以确定它的K个最近邻点。随着数据量的增大,会造成相似度计算量过大、从而导致计算效率较低的问题,这样严重限制了KNN算法在数据挖掘工作中的应用。而在Spark平台上将KNN算法进行分布式实现,有效的解决了KNN算法近邻查找过程中搜索历史数据库效率过低的问题,提高了算法的计算效率,有效的改善了KNN预测算法的实用性。Spark是一个通用的大规模数据快速处理引擎,它是由UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。Spark是基于内存的迭代计算框架,它使用了RDD的理念,可以在内存中存储数据,只在需要时才持久化到磁盘中。这样做可以在很大程度上减少了数据处理过程中磁盘的读写,大幅度的降低了任务执行所需时间,因此Spark能更好的适用于数据挖掘和机器学习等需要反复迭代的算法。Spark还支持SQL查询、流式查询及图计算等。在分布式数据集计算时,Spark可以通过checkpoint机制来实现容错。目前,国内的阿里巴巴、优酷土豆、百度、腾讯、网易、搜狐等互联网公司已经将Spark技术应用到了自己的商业生产系统中。百度拥有国内最大的Spark集群,已应用于凤巢、大搜索、直达号、百度大数据等业务中;阿里巴巴将Spark运用于淘宝的推荐相关算法上,同时还利用Spark图计算解决了许多实际生产问题。对于短时交通流量预测,随着交通数据量的成倍增加,传统的单机数据挖掘模式已经很难满足实际应用要求。将Spark大数据平台与短时交通流量预测相结合,可以使这一应用更加满足实际需要,同时对其他应用的研究也非常有借鉴价值。
技术实现思路
本专利技术的目的在于提供一种基于Spark大数据平台的短时交通流量预测方法,在Spark集群上,对KNN算法进行并行化实现,通过并行化的对交通流量数据进行处理,加速数据处理过程,预测待测路段下一时刻的交通流量。本专利技术的目的通过如下技术方案实现。一种基于Spark平台的短时交通流量预测方法,包括以下步骤:数据预处理:处理源交通流量数据,剔除与交通流量预测无关的数据字段。基于时空关系的流量预测:利用与待测路段在时间和空间相关联路段的交通流量共同生成KNN算法的交通流特征向量。实时流处理:利用Spark流计算解决了交通流量预测的实时性问题。并行化KNN算法实现:对KNN算法进行并行化实现,使得KNN算法能够在分布式集群Spark上运行。数据分析:利用并行化KNN算法,对基于时空关系生成的交通流特征向量进行处理,得到待测路段下一时刻交通流量的预测结果。进一步地,数据预处理是对由道路传感器收集到的源交通流数据进行处理,得到与预测路段相关的字段数据以及与待测路段在时间和空间相关联路段的交通流数据,包括如下步骤:将传感器收集到的交通流量数据存储到Hadoop的HDFS文件系统中。利用textFile()函数将存储到HDFS文件系统中的交通流量数据读入到Spark中,并生成一个Spark中特有的数据类型MappedRDD。利用map()函数,读取每一行交通流量数据,并利用Spark中的split()函数对每一行数据按照分隔符进行分割,最后将需要的交通流字段数据进行提取。进一步地,基于时空关系的特征向量是对交通流数据进行时空特性分析,确定最佳的时间和空间维度,以此形成最佳的交通流输入向量,包括如下步骤:确定最佳时间维度为2,即选取相关路段当前时刻和前一时刻的交通流量,时间间隔为5分钟确定最佳空间维度为4,即选取待测路段、两个上游路段和一个下游路段的交通流量数据。进一步地,实时流处理是利用Spark流计算时刻检测输入数据是否有更新,当数据有更新时,系统自动进行下一次的交通流量预测工作,以满足短时交通流量预测对于实时性的要求,包括如下步骤:设置Spark Streaming的窗口时间为5分钟。利用StreamingContext创建一个Spark Streaming Context对象。利用socketTextStream()获得一个Dstream对象负责连接监听端口。进一步地,并行化KNN算法实现是指对传统的基于单机运行的KNN算法重新进行实现,使并行化的KNN算法能够在由多台物理机组成的集群上运行,包括如下步骤:利用mapPartitions()函数将已经处理好的交通流量数据分成几个分区,其中每个分区的数据在Spark集群中会在一个物理机上进行计算。定义一个函数,这个函数的功能是获得待测路段及与待测路段在时间和空间相关联路段的交通流量所组成的特征向量。将定义的这个函数作为mapPartitions()函数的参数。数据分析是指在Spark集群上运行实现的并行化KNN算法,预测待测路段下一时刻的交通流量,包括如下步骤:从历史数据库中利用欧式距离匹配到与当前待测路段交通流量最接近的K个交通流量数据。取当前该K个交通流量向量的下一时刻交通流量的加权平均值作为预测路段下一时刻的交通流量。与现有技术相比,本专利技术具有以下优点:本专利技术通过数据预处理对原始数据的高维特征集进行了删减,除去了特征集中的冗余信息,减少了数据量。本专利技术通过在Spark平台上对KNN算法进行并行化的实现,使KNN算法能够并行的进行特征向量相似度的计算工作,解决了KNN算法在相似度计算过程中计算效率较低的问题。利用Spark强大的流处理功能,时刻检测输入数据的变化情况,当数据发生更新时系统能够自动的进行下一次的预测工作。因此可以满足短时交通流量预测对于实时性的要求。将Spark平台与短时交通流量预测这一应用相结合,可以大幅度缩减进行交通流量的预测时间,使这一应用更加满足实际环境的要求。附图说明图1为本专利技术一种基于Spark平台的短时交通流量预测方法的流程图。图2为数据预处理流程图。图3为基于时空特性的交通流量预测示意图。图4是基于时空特性与基于时间特性交通流量预测结果对比图。图5为基于时空特性与基于时间特性MRE指标对比图。图6为并行化KNN算法实现流程图。图7为传统KNN算法与在Spark平台上并行化的KNN算法的预测时间对比图。图8为在Spark平台上并行化的KNN算法扩展性示意图。图9为在Spark平台上并行化的KNN算法加速比示意图。具体实施方式以下结合附图对本专利技术的具体实施作进一步说明,但本专利技术的实施和保护不限于此,需指出的是,以下若有未特别详细说明之处均是本领域技术人员可根据现有技术理解或编程实现的。本专利技术是一种基于Spark平台的短时交通流量预测方法,如图1所示,包括如下步骤:本实本文档来自技高网
...
一种基于Spark平台的短时交通流量预测方法

【技术保护点】
一种基于Spark平台的短时交通流量预测方法,其特征在于包括如下步骤:(1)数据预处理:处理源交通流量数据,剔除与交通流量预测无关的数据字段;(2)基于时空关系的特征向量:利用与待测路段在时间和空间相关联路段的交通流量共同生成KNN算法的交通流特征向量;(3) 实时流处理:利用Spark 流计算解决了交通流量预测的实时性问题;(4)并行化KNN算法实现:对传统KNN算法进行并行化实现,使得KNN算法能够在Spark分布式集群上运行;(5)数据分析:利用并行化KNN算法,对基于时空关系生成的交通流特征向量进行处理,得到待测路段下一时刻交通流量的预测结果。

【技术特征摘要】
1.一种基于Spark平台的短时交通流量预测方法,其特征在于包括如下步骤:(1)数据预处理:处理源交通流量数据,剔除与交通流量预测无关的数据字段;(2)基于时空关系的特征向量:利用与待测路段在时间和空间相关联路段的交通流量共同生成KNN算法的交通流特征向量;(3) 实时流处理:利用Spark 流计算解决了交通流量预测的实时性问题;(4)并行化KNN算法实现:对传统KNN算法进行并行化实现,使得KNN算法能够在Spark分布式集群上运行;(5)数据分析:利用并行化KNN算法,对基于时空关系生成的交通流特征向量进行处理,得到待测路段下一时刻交通流量的预测结果。2.根据权利要求1所述的一种基于Spark平台的短时交通流量预测方法,其特征在于:所述的数据预处理是对由道路传感器收集到的源交通流数据进行处理,得到与预测路段相关的字段数据以及与待测路段在时间和空间相关联路段的交通流数据,包括如下步骤:(1)将传感器收集到的交通流量数据存储到Hadoop的HDFS文件系统中;(2)利用Spark中的textFile()函数将存储到HDFS文件系统中的交通流量数据读入到Spark中,并生成一个Spark中特有的数据类型MappedRDD;(3)利用Spark中的map()函数,读取MappedRDD中每一行交通流量数据,并利用Spark中的split()函数对每一行数据按照分隔符进行分割,最后将需要的交通流字段数据进行提取。3.根据权利要求1所述的一种基于Spark平台的短时交通流量预测方法,其特征在于:所述的基于时空关系的特征向量是对交通流数据进行时空特性分析,确定最佳的时间和空间维度,以此形成最佳的交通流输入向量;预...

【专利技术属性】
技术研发人员:胡斌杰王腾辉
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1