您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页基于MapReduce的多元线性回归算法的设计与实现

基于MapReduce的多元线性回归算法的设计与实现

来源:飒榕旅游知识分享网
第33卷第1期 四川兵工学报 2012年1月 【基础理论与应用研究】 基于MapReduce的多元线性回归 算法的设计与实现 王大伟 ,沈奇威 ,王玉龙 ’ (1.北京邮电大学网络与交换技术国家重点实验室,北京100876; 2.东信北邮信息技术有限公司,北京100191) 摘要:针对现代大规模数据线性回归在单机计算时间过长的问题,本文设计并实现了一种基于MapReduce架构的并行多元 线性回归算法。在用普通PC搭建的Hadoop集群上的研究实验结果表明,基于MapReduce架构的多元线性回归算法在处理 大规模数据时,与单机的多元线性回归算法相比有较大的速度提升。 关键词:MapReduce;Hadoop;多元线性回归 中图分类号:TP301 文献标识码:A 文章编号:1006—0707(2012)O1—0133—03 在如今数据爆炸的时代,用户数据、Web数据、SNS(social networking services)数据等各类数据规模呈几何级增长,数据量 已不再是单纯的几十M,而是几十G,甚至上T。同时,数据的条 数动辄上亿,维度从几十维至几百维。而如今,单机处理几十G 的数据就需要小时级的运行时间,在实际应用中是无法忍受的。 对如此庞大的数据量的处理是目前所面临的问题。因此随着互 即: bkx“+“ ,i=1,2,…,n 联网的迅猛发展,实现一种高效的数据挖掘算法具有重要的学 术意义和经济价值。 Hadoop…是近年来新兴的、开源的、存储大规模数据的分布 : :: li: 。+ 。 。 + + +…+ + 用最小二乘法估计参数b。,b 一,b ,就是要选择参数b。,b 一, b ,使Y的观测值 与相应函数值 的离差平方和达到最小 式文件系统,架构在其上面的MapReduce_2 计算框架可以有效 地管理多台计算机共同运行一项任务,擅长对海量数据的处理。 作为多元统计分析方法中应用最为广泛的多元线性回归分析方 法,尤其在数据密集型行业的业务预测分析等环节起着重要的 Q:∑( 一 )。=∑( 一氏一 取最小值时有: 一・一8kXki) fl  氏 :0 作用。因此,本文对基于MapReduce的多元线性回归算法进行 了设计和实现。 ・ {l :0 (3) l 多元线性回归算法原理 在实际生活中,一个经济变量经常受多个因素影响,研究因 变量(被解释变量)对于2个或2个以上自变量(解释变量)之间 的回归问题,称为多元回归分析 。回归分析主要用于分析事 整理得: lI i :0 fn晶+ ∑ + ∑ +..’+ ∑%=∑yl 物之间的统计关系,侧重考察变量之间的数量变化规律。 若因变量l,与解释变量 , , …具有线性关系,则他们 』 ∑ - + ∑ + ∑ z +…+ ∑ =∑ (4) l; tGoE%+ 。∑ (1) 之间的线性回归模型可表示为 Y=b0+blXl+62 +63 +…+6^ + ∑ +..・+ ∑ =∑xkiYi 其中"-U为随机扰动项观测值。对于第i个观测值 收稿日期:2011—11—28 基金项目:国家973计划项目(2012CB315802);国家自然科学基金项目(61072057,60902051,61101119);长江学者和创新团队 发展计划资助项目;国家科技重大专项项目(2011ZX03002—001—01);中央高校基本科研业务费专项资金项目 (BUPT2009RC0505) 作者简介:王大伟(1984一),男,硕士,主要从事业务网络智能化研究。 l34 四川兵工学报 http://scbg.jourseI、,.corn/ 2基于MapReduce的多元线性回归算法 2.1 MapReduce简介 本文使用MapReduce程序来处理大规模的数据集。MapRe— duce是一个编程模式,由Map和Reduce两个函数组成。MapRe— duce程序中的输人、输出和中间数据都是以键值对(key,value) 的形式存在。Map函数的输入是一些<kl,vl>元组集,然后产 生中间数据元组<k2,v2>。Reduce函数运行时,将所有的key 按值分,每1个key值的所有元组运行1次Reduce函数。Re. duce函数的输入是<k2,list(v2)>,输出是<k3,v3>。 2.2基于MapReduce的多元线性回归算法 使用MapReduce程序来计算式(4)中矩阵的系数和最后的 总离差、回归和残差平方和 j。如图1,首先运行一个作业,计算 矩阵的系数(假设矩阵是m维),每个Mapper(每个block对应1 个Mapper)维持1个m×m的二维数组,每读1行,运行1次Map 函数,就将计算的数加进去,直到这个block(Hadoop里的文件分 块)的Mapper运行完毕,将结果以键值对的形式写入磁盘;然后 Combiner将本机的所有block中间结果相同key的value值相 加;最后Reducer将不同机器上所有中间结果相同key的value 值相加,将矩阵的系数写入磁盘,求出结果,即式(1)。 l TaskTracker l l TaskTracker I l TaskTracker l / \ \ / / \ 。牵。. 户 图l计算流程 再运行一个作业,求总离差和回归差,过程与第1个作业类 似,只不过每个Mapper维持和更新的是2个变量,而不是1个二 维数组。 计算式(4)中矩阵系数的Mapper的逻辑 如下: Mapper<Object,Text,Text,DoubleWritable>{ //声明本地变量自变量x维数m和系数矩阵matr m,matr; setup(contenxt){ //从JobConf中得到m,并且new出m维矩阵matr } map(){ //更新matr,将此行得出的自变量之间的乘积加到ma— tr上 } cleanup(){ //将中间结果矩阵matr写到磁盘上 } } Combiner和reducer都是类似wordcount(MapReduce官方例 程)求和的过程。计算总离差和回归差比较简单,是个遍历的 过程。 3实验与结果分析 3.1试验环境和数据属性 实验集群:1台NameNode,9台DataNode,配置是CPU双核 2.4G、内存2G,Map任务最大同时运行数量为18,Reduce任务最 大同时运行数目为9。单机程序运行机器的配置是CPU双核2. 4G、内存2G。表1是所用的实验数据的大小和属性。 表1 实验数据大小(单位为GB,列名是数据的 维度大小,行名是数据的条数) 30万 0.O1 0.O3 0.09 0.28 100万 0.04 0.1 0.3 O.95 300万 0.11 O.3l 0.88 2.78 1 000万 0.38 1.02 2.87 9.26 3.2实验结果及分析 , 如图2,在集群9台的环境下,数据的维度从3维到100维, 数据的条数从3O万到1 000万,可以发现数据量在30(3到100 维),100(3到100维),300(3到3O维)和1 000万条(3到10 维)的运行时间都在40s左右,并且表现出无序性,主要原因是 这个时间的大部分比例被作业初始化时间、中间文件生成与传 递时间所占,这是这个MapReduce程序运行所需的基本时间。 此时MapReduce的并行运算性能优势没有得到发挥。而当数据 量达到1 000万3O维的时候,运行时间开始增加,这个数据量是 MapReduce的并行运算优势开始发挥的时候,所以跟单机比较 的时候,采用l 000万或3O维的数据。 如图3,先在数据维度为30,条数逐步递增的情况下比较。 王大伟,等:基于MapReduce的多元线性回归算法的设计与实现 可以看到,在数据量300万30维的时候运行时间相差无几,而 达到1 000万3O维的时候单机的运行时间已经是集群的2倍 135 100台以上的机器(而且机器都是刀片机),所以预估100台的集 群,在运行百G的数据时,速度是百秒级,而单机则需要百分 种 鲫 多。集群(9台)的优势在1 000万30维的时候体现出来。而且 从图3中可以看出,在数据条数增加的情况下,单机运行时间的 加速度比集群的要大,所以在数据量越大的情况下,集群的并行 运算优势越明显。 l舯0o0 1600oO 1400o0 12O0D0 l0o00o 80000 60000 400oO 20000 0 10 3O l00 4组数据运行时间/ms 60O0o0 50o0o0 400000 3000oO 20o0oO 10o0oO 0 30万 1O0万 300万1 000万 3 000万 图3 30维、条数递增的数据的运行时间/ms 如图4,1 000万条的数据,维度从3到100的时候,大小是 0.38,1.02,2.87,9.26G,也是在3O维的时候运行速度优势比较 明显地体现出来。而且在数据维数增加的情况下,单机运行的 时间增加速度比集群的要大。从图4中可以看出,在数据维度 增加的情况下,单机运行时间的加速度比集群的要大,所以在数 据量越大的情况下,集群的并行运算优势越明显。 图4 1 000万条、维度递增的数据的运行时间/ms 图5是1 000万条30维、2.87G的数据在集群台数变化的 时候运行时间的结果。在3台的时候是比单机慢,到了4台的 时候开始比单机快。现在一般公司用的Hadoop集群,一般拥有 钟级 。 2000oO 1800o0 160oo0 140O00 l2OO00 10000o 800oO 60000 40ooO 2OOo0 0 图5 1 000万条、30维的数据在集群台数递增 情况下的运行时间/ms 实验结果表明:在实验环境中,基于MapReduce的多元线性 回归算法在数据大小为GB级的时候就可以展现出性能的优势; 在数据量为lOG的时候,就有3倍的性能优势。 4结束语 本文利用MapReduce并行性的优势,设计了一种基于Ma— pReduce的并行多元线性回归算法。该算法能对大规模的数据 进行线性回归,充分利用了多台普通Pc组成的Hadoop集群的 性能,从而可以在较短的时间内进行线性回归,提高了近年来社 会化网络中海量数据运算使用线性回归算法的方便性。 同时,这个算法也有一定的缺点和不足,包括此算法需要在 MapReduce框架中运行,并且在比较大的数据量下才能显示出 性能优势等。 参考文献: [1]Venner J.Pro Hadoop[M].USA:Berkely,2009. [2]Dean J,Ghemawat S.MapReduee:Simpliifed Data Processing on Large Clusters[C]//Pmc.of the 6th Symposium on Operating System Design and Implementation.San Francisco,2004. [3] 贺德化.多元线性回归算法原理[G/OL].http://www. scutde. net/courses—b/0101一ceffgebcfh/10/ghj 10010101. htm.2001. [4]金欣,沈奇威,王晶.自中心网络生成的高效分布式设计与 实现[J].电信科学,2olo(11):32—36. [5] 曹羽中.Hadoop进行分布式并行编程[EB/OL].[2008—05 —22].http://www.ibm.eom/developerworks/en/open— source/os—cn—hadoop2/index.htm1. [6] Wan,Li.Social network information flow model based eollabo— rative filteirng algoirthm[J].Jilin Daxue Xuebao(Gongxue— ban),2011,41(1):270—275. (责任编辑鲁进) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务