大数据带你挖掘打车的秘籍

96
作者 实验楼
2017.01.18 15:38 字数 816

出租车是我们生活中经常乘坐的一种交通工具,但打车难的问题也限制了我们更好地利用这种交通方式。在哪些地方出租车更容易打到?在什么时候更容易打到出租车?

该项目基于成都市的出租车行驶轨迹数据,带你学习如何应用Spark SQL和机器学习相关技巧,并且通过数据可视化手段展现分析结果。

一、项目前期准备

数据集的准备

由于该项目主要介绍如何分析行驶轨迹从而找出容易达到车的地方,所以前期的数据集就不详细的介绍如何清洗了,教程里已经准备好了清洗完成的四川省成都市的出租车GPS记录数据集。

数据记录了成都市部分出租车在载客时的GPS位置和时间等信息,数据记录的格式为 CSV 格式。

导入数据

  • 加载实验所需的包;

    import org.apache.spark._
    import org.apache.spark.sql._
    import org.apache.spark.sql.types._
    import org.apache.spark.sql.functions._
    import org.apache.spark.ml.feature.VectorAssembler
    import org.apache.spark.ml.clustering.KMeans
  • 定义字段格式:由于该数据集没有标记各个字段的名称,如果我们直接创建 DataFrame 的话,就不能够很好地去定位到各个列。因此在导入数据之前,我们需要先定义数据的字段格式(Schema)。

  • 读取数据;

  • 检查已导入的数据;

关于如何导入已提供好的数据集,点击【大数据带你挖掘打车的秘籍】即可查看了~

二、对出租车数据进行聚类

该项目应用K-Means 将数据点进行分组。

开发步骤如下:

  • 定义特征数组
  • 进行 K-Means 计算
  • 对测试集进行聚类
  • 分析聚类的预测结果

每天哪个时段的出租车最繁忙?


结果中每个时段的出租车服务次数按照降序进行了排列。可以看到 14点 至 17 点这个时段里,聚类区域为 9 号区域内的出租车载客次数是最多的,为 6018 次。同时,从总体上来看,聚类区域为 9 号的区域前 20 条记录内占绝大多数,我们可以大胆推测在该区域内打车的人比较多,并且在 14 点、 15 点 和 17 点 最难打到车(真的是这样吗?根据自己的生活经验想一下是否合理)。

关于详细的开发步骤和代码详解,点击【大数据带你挖掘打车的秘籍】即可查看了~

三、数据可视化

为了方便访问和使用,该项目使用百度地图来展示地理位置信息;

关于如何使用百度地图的开发平台,以及如何利用百度地图来展示信息等,点击【大数据带你挖掘打车的秘籍】即可详细的开发步骤和代码了……

大数据