导言

据Gartner称:到2020年,25亿辆联网汽车将成为物联网的主要对象。联网车辆预计每小时可以生成25GB的数据,对这些数据进行分析实现实时监控。大数据目前是10个主要领域之一,利用它可以使城市更加智能。例如,对GPS汽车数据的分析可以实现城市实时交通流量的优化。

Uber正在利用大数据完善它们的流程,从计算定价到寻找汽车的最佳定位都争取实现利润最大化。在这一系列的文章中,我们将使用公共Uber旅行数据来讨论构建分析和监控汽车GPS数据的实时示例。机器学习通常有两个阶段,包括实时数据:

  • 数据发现。第一阶段涉及分析历史数据以构建机器学习模型;

  • 使用该模型进行分析。第二阶段在现场活动中使用该模型;(Spark确实提供了一些流媒体机器学习算法,但仍然经常需要对历史数据进行分析。)

这是系列文章的第一篇,我们将一起开始使用Apache Spark的机器学习K-means算法根据位置聚类Uber数据。

聚类

Google新闻使用集群技术,根据标题和内容将新闻报道分为不同的类别。聚类算法发现数据集合中出现的分组。

在聚类中,算法通过分析输入示例之间的相似性将对象分组。群集的示例包括:

  • 搜索结果分组;

  • 客户分组;

  • 异常检测;

  • 文本分类;

聚类使用无监督算法,对输入数据不提前标记。

K-means是最常用的聚类算法之一,它将数据点聚类成预定数量的聚类(k)。使用K-means算法进行聚类首先将所有坐标初始化为k个质心。随着每次使用算法,每个点基于一些距离度量被分配到其最近的质心,该距离度量通常是Euclidean距离。然后,将质心更新为该通道中分配给它的所有点的“中心”,这种情况一直重复,直到中心发生最小变化。

示例数据集

示例的数据集是Uber旅行数据,从NYC Taxi & Limousine Commission获得的FiveThirtyEight数据。在这个例子中,我们将根据经度和纬度发现Uber数据的集群,然后将按日期/时间分析集群中心。数据集具有以下模式:

1、Date/Time:Uber的日期和时间;

2、Lat:Uber的纬度;

3、Lon:Uber的经度

4、Base:隶属于Uber的TLC公司;

数据记录采用CSV格式。如下所示:

12014-08-01 00:00:00,40.729,-73.9422,B025982014-08-01 00:00:00,40.729,-73.9422,B02598

示例代码

先导入Spark ML K-means和SQL所需的包。

使用Spark Structype指定模式(如果你使用的是笔记本,则不必创建SQLContext)。

接下来,将CSV文件中的数据加载到Spark DataFrame中。

使用Spark 1.6 packages com.databricks:spark-csv_2.10:1.5.0,从CSV文件数据源创建DataFrame,并使用架构。

或者使用Spark 2.0,可以指定要加载到DataFrame中的数据源和架构,如下所示:

对于Spark 2.0,在将数据加载到DataFrame时指定模式将提供比模式推断更好的性能。DataFrame printSchema() 以树形格式将模式打印到控制台,如下所示:

DataFrame show() 显示前20行:

定义要素数组

为了使机器学习算法使用这些特征,将特征变换并放入特征向量中,特征向量是表示每个特征的值的数字向量。下面,VectorAssembler用于转换并返回包含向量列中所有要素列的新DataFrame。

输出df2.show:

接下来,我们创建一个KMeans对象,设置参数以定义簇的数量和确定簇的最大迭代次数,并使模型适合输入数据。

模型输出clusterCenters:

下面,群集中心显示在Google地图上:

接下来,我们使用该模型获取测试数据的集群,以便进一步分析集群。

现在我们可以提出一些问题,例如“一天中哪个时间和哪个集群载客次数最多?”

每个集群中发了了多少次?

如果使用Zeppelin笔记本,我们还可以在条形图或图表中显示查询结果。下面,x轴是小时,y轴是计数,颜色代表不同的簇。

例如,你可以使用给定的名称将DataFrame注册为临时表df.registerTempTable("uber"),然后使用提供的的SQL方法运行SQL语句sqlContext。以下是Zeppelin笔记本中的一个示例。

该模型可以持久的保存在磁盘,如下所示,以便以后使用(如,使用Spark Streaming)。

系列指南

  • 使用Apache API监控实时Uber数据,第1部分:Spark机器学习

  • 使用Apache API监控实时Uber数据,第2部分:Kafka和Spark Streaming

  • 使用Apache API监控实时Uber数据,第3部分:使用Vert.x的实时仪表板

  • 使用Apache API监控实时Uber数据,第4部分:Spark Streaming,DataFrames和HBase

长按订阅↓

基于大数据的Uber数据实时监控(Part 1:Spark机器学习)相关推荐

  1. 基于大数据的Uber数据实时监控(Part 4:Spark Streaming、DataFrames和HBase)

    导言 根据Gartner的数据,到2020年全球将有208亿个连接产品投入使用.Uber机器学习负责人Danny Lange的目标是将机器学习待到Uber业务的每个角落.连接事物的示例包括联网汽车和设 ...

  2. 基于大数据的Uber数据实时监控(Part 2:Kafka和Spark Streaming)

    导言 本文是系列文章的第二篇,我们将建立一个分析和监控Uber汽车GPS旅行数据的实时示例.在第一篇文章中讨论了使用Apache Spark的K-means算法创建机器学习模型,以根据位置聚类Uber ...

  3. 基于大数据的Uber数据实时监控(Prat 3:使用Vert.x的实时仪表盘)

    导言 据Gartner称,到2020年智能城市将使用约13.9亿辆联网车,物联网传感器和设备.城市内的位置和行为模式分析将有助于优化流量,更好的规划策略和更智能的广告.电信公司正在使用移动电话位置数据 ...

  4. 基于Android中socket流的实时监控及遥控系统

    该系统分为两部分,首先是局域网手机之间的视频传输(条件有限用手机摄像头代替模块),其次是手机蓝牙与arduino开发板的信息传输.代码注释较为详细,这里直接上代码. 客户端视频数据获取: packag ...

  5. 广告业务系统 之 数据中转站 —— “日志中心-实时服务监控”

    文章目录 广告业务系统 之 数据中转站 -- "日志中心-实时服务监控" 日志中心 实时服务监控 -- 前链路日志分析 日志收敛手段 -- "手术开口" 基于 ...

  6. 实时监控:基于流计算 Oceanus ( Flink ) 实现系统和应用级实时监控

    作者:吴云涛,腾讯 CSIG 高级工程师 本文描述了如何使用腾讯云大数据组件来完成实时监控系统的设计和实现,通过实时采集并分析云服务器(CVM)及其 App 应用的 CPU和内存等资源消耗数据,以短信 ...

  7. 【精益生产】数字化转型探索之路——基于精益生产管理的数据决策分析体系

    随着"工业4.0"."两化"融合.<中国制造2025>等理念或政策的提出,粗放式的制造生产模式的弊端被越来越多的暴露出来,中国制造昔日冠以" ...

  8. 5分钟完成业务实时监控系统搭建,是一种什么样的体验?

    简介:道旅需要构建一个全面的指标监控系统,既包括系统的业务指标:如各类业务类型的请求数变化,不同供应商信息的变化,客户请求的明细大盘,各酒店请求量的排名变化,不同城市的订单转换率分析报表等:也包括系统 ...

  9. CAT ----分布式实时监控系统

    2011年底,我加入大众点评网,出于很偶然的机会,决定开发CAT,为各个业务线打造分布式实时监控系统,CAT的核心概念源自eBay闭源系统CAL----eBay的几大法宝之一. 在当今互联网时代,业务 ...

最新文章

  1. SAP SD 基础知识之定价中的条件技术(Condition Technique in Pricing)
  2. 如何解决ajax跨域问题(转)
  3. Could not open ServletContext resource [/WEB-INF/applicationContext.xml]”解决方案
  4. Ansible,Linux应用程序,Jupyter笔记本,Raspberry Pi婴儿监视器,Python等
  5. 滴滴春节期间加强司机安全教育 考核通过才能上岗
  6. 一次线上事故,让我对MySql的时间戳存char(10)还是int(10)有了全新的认识
  7. cocos2d-x之悦动的小球
  8. 位置权限 android_Android 10 –位置权限
  9. Linux设备驱动模型二 kobject
  10. LR接口测试---Java Vuser之增删改查
  11. 如何借助ArrayAdapter和Spinner实现下拉列表
  12. 【数字逻辑】学习笔记 第三章 Part2 逻辑函数的化简
  13. FIT2CLOUD飞致云成为Kubernetes认证服务提供商(KCSP)
  14. 清华大学出来的工资有多高?| 文末送书
  15. 成都中医药大学计算机基础试题,成都中医药大学2016年春季学期期末考试计算机基础-成教()解剖.doc...
  16. 竞品分析(淘宝、京东)
  17. linux下su,su-,sudo命令的区别和用法
  18. Cookie、sessionStorage和localStorage
  19. wifi 驱动 进阶11
  20. 安全生产预警管理系统

热门文章

  1. matlab图像定位分割,車牌定位matlab程序:通過hsv彩色分割方式定位車牌
  2. php where 优先,php – 使用WHERE选择所有内容
  3. 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
  4. 牛客练习赛64 - A.怪盗-1412(排列组合,简单数学)
  5. android设置title字体大小,android setTitle怎么实现字体的大小
  6. 111.二叉树的最小深度
  7. 关于owner group others的测试
  8. (三)WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(核心)
  9. Linux TOP 命令显示详情
  10. dubbo之注册管理中心