采用的出租车GPS轨迹数据来源为500余辆出租车1个月的GPS轨迹数据。出租车GPS轨迹数据包括一个储存出租车ID的txt文档和500余个储存出租车轨迹数据的txt文档。每一辆出租车对应于一条出租车ID信息以及一份出租车轨迹数据。出租车轨迹数据是一系列采样记录,每一行含有如下信息:出租车位置的经度信息、出租车位置的纬度信息、载客状态(1/0表示有/无乘客)以及当前的时刻。出租车位置的经纬度信息采用标准的经纬度坐标系统,东经为正数,西经为负数,北纬为正数,南纬为负数。所采用的出租车GPS轨迹数据基本上位于东经116°,北纬39°左右。我们进行聚类分析所需要的主要是出租车的位置经纬度信息和载客状态。出租车的载客状态从0变为1,表示这一辆出租车在此时此刻的这一位置由空载变为满载,也就是有乘客上车。我们需要的是载客状态为1的出租车轨迹数据,也就是所谓的出租车载客位置。运用Java编程语言编写程序对全部出租车GPS轨迹数据进行筛选,筛选出所有满足上述要求的出租车轨迹数据记录,并且提取出记录中的经纬度数据,作为Matlab聚类分析的代入数据。Matlab的SOM神经网络聚类分析具备图形引导界面,方便使用者直接进行简单清晰的操作(图3-2)。可是由于所需要代入的数据量太大,如果直接运用这种方法会导致“out of memory”,也就是内存不足。因此需要重新编写代码,以实现对数据进行聚类分析的目的(图3-3)。为符合Matlab数据的代入格式,需要先将经纬度数据进行转置,也就是从两列变为两行的形式。再建立一个10×10的SOM网络,竞争层为10×10=100个神经元。接着剔除代入数据中的不可用数据,这些数据可能是数据记录本身存在问题,也可能是数据记录中的数据格式存在问题,总之这些数据是Matlab无法识别的。然后将数据分割为400组,每一组有1000余条数据记录,编写程序对代入数据进行循环训练。采用元胞方式表示出聚类结果并计算聚类中心。聚类中心的数量就是SOM网络神经元的数量,也就是10×10=100个。对应于每一个中心点,可以知道经过聚类分析而归属于这一类的数据记录的数目。为了将实验在符合合理性的标准下尽可能地简化,从100个聚类中心中选择了10个包含数据记录的数目比较大的聚类中心取为载客热点[9]。SOM网络示意如图3-4~图3-9所示。
图3-2 Matlab实时工作界面
图3-3 SOM神经网络算法循环训练过程
图3-4 SOM网络拓扑学结构
图3-5 SOM竞争层邻近神经元的连接情况
(www.xing528.com)
图3-6 SOM邻近神经元之间的距离情况
图3-7 SOM各输入向量和竞争层神经元之间的权值连接情况
图3-8 SOM各个神经元的分类情况
图3-9 SOM输入样本的划分情况
载客热点的含义为出租车搭载乘客相对比较集中的区域,按照此种方法生成的载客热点基本上可以反映这一特点,具备科学性和合理性。可是受限于实验条件,实验所采用的实验数据无论是从数据的质还是从数据的量都有一定的局限性,有可能导致实验结果与实际情况有一定的差异。尽管如此,并不影响本章所研究问题的验证。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。