基于Hadoop平台经纬度信息聚类算法研究与改进.docVIP

基于Hadoop平台经纬度信息聚类算法研究与改进.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Hadoop平台经纬度信息聚类算法研究与改进

基于Hadoop平台经纬度信息聚类算法研究与改进   摘 要:Mahout中的k-means算法在使用距离测度时通常会使用欧氏距离,当使用经纬度计算地球两点距离时会与真实情况存在误差。本文基于Hadoop平台,利用半正矢公式对Mahout中所集成的距离测度进行改进,实现球面距离的精确计算。研究结果可用于移动互联网环境下定位信息的聚类分析。   【关键词】Mahout Hadoop 半正矢公式 移动互联网   聚类分析是数据挖掘中重要的研究课题之一。所谓聚类,就是将一组数据集合划分成多个簇,每个簇中的元素或对象有着相似的特征,簇与簇之间的元素尽量保证特征差异的存在。而在大数据的时代背景下,传统的聚类分析在性能上遇到瓶颈。为了解决这个问题,国内外的专家学者将聚类分析与Hadoop平台相结合,实现了高效的并行聚类算法。聚类算法在分析样本的相似性中主要使用两种方法:基于相似系数和基于距离测度。本文使用距离测度进行相似性划分,首次引入半正矢公式计算两点之间的球面距离,以精确的距离判断聚簇中的相似性。   本文第一节介绍了Hadoop平台的基本构成,和k-means算法在Mahout中的工作原理;第二节引入了半正矢公式来计算球面距离,并对公式做了推导分析;第三节为实验环节,对改进前后的算法进行比较。   1 Hadoop简介   Hadoop是由Apache基金会所开发的分布式系统基础架构,是一个提供对大量数据进行分布式并行处理的开源平台,有着高容错性和高扩展性的优势。Hadoop主要由两部分组成,分别是分布式文件系统(HDFS)和分布式计算框架(MapReduce)。HDFS采用主从架构,是一个具有高度容错性的分布式文件系统,适合部署在廉价的机器上,同时能够提高吞吐量的数据访问,非常适合大规模数据集上的应用。MapReduce是一个基于集群的高性能并行计算平台,同时也是一个并行计算与运行软件框架。为了能够将Hadoop平台运用到数据挖掘领域实现简单的聚类分析,Apache基金会为其提供了可并行计算的开源算法库――Mahout。   2 Mahout中的k-means聚类算法原理介绍   Mahout是Apache基金会的开源项目之一,是一个基于Hadoop云平台的数据挖掘分析的开源系统,项目本身实现了聚类算法。Mahout实现的k-means算法可以划分为三个阶段。第一阶段扫描原始数据集合中所有的点,并随机选取K个点作为初始的簇中心。第二阶段Map方法读取存在本地的数据集,计算每个对象到中心点的距离,选择距离每个对象最近的中心点并输出键值对,最后在Reduce阶段用若干聚类集合生成新的全局聚类中心,重复第二阶段过程直到满足结束条件。第三阶段根据最终生成的簇中心对所有的数据元素进行划分聚类的工作。   Mahout0.9的版本中封装了大量的距离测度公式,其中就包括了欧氏距离。但是本文中所使用的实验数据由经纬度构成,考虑到地球球面的特殊性,直接使用欧氏距离计算两点之间距离所得到的结果与实际距离相差很大。为了解决这个问题,文章引入了半正矢公式去计算地球表面两点之间的距离,将该公式作为一个距离测度封装到Mahout中。   3 半正矢公式计算球面距离   球面距离的实现需要了解球面半正矢公式(Haversine formula)。球面半正矢公式是目前重要的导航方程,主要是通过球面上两点经纬度给出大圆距离。球面半正矢公式采用了正弦公式,即使距离很小也能够保持可用的有效数字。半正矢公式为:   。公式的推导过程如图1。   如图1所示地球球面,假设半径R为1,O是地球球心,在地球球面上选取A、B两点,两点的经纬度分别设为(a1, a2)和(b1, b2),AB两点的经度线相交北极点N,同时在这两条经度线上选取C、D两点,经纬度分别是(b1, a2)和(a1, b2)。图中赤道上两点E和F纬度为0,AD和BC分别是两点之间的直线。点A与点C的纬度差∠AOC和点B与点D的纬度差都是dlat。∠EOF是点E与点F的经度差dlon。将ABCD四点投射在二维平面上形成一个等腰梯形,如图2所示。   AC和BD可看作圆内的两条弦,则   求角度∠AOB,假设AC=,得到:OC;假设c是∠AOB的度数,sin∠AOC=,则:c=2*。   最后一步求得AB的球面距离,设地球半径为R,将上述公式带入得到AB的真实距离:d = 2 * R * c。   半正矢公式可以将抽象的经纬度坐标点转换成实际距离,为了比较直接使用欧氏距离,将两者分别在单机的eclipse中执行,所用到的测试数据为(39.946071, 116.327932)和(31.240634, 121.425752)两点。在两种计算公式中结果分别是:半正矢公式的4169

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档