|
R语言与Hadoop双剑合璧 将大数据炼成真丹广大R语言爱好者借助强大工具RHadoop,可以在大数据领域大展拳脚,这对R语言程序员来说无疑是个喜讯。作者从一个程序员的角度对R语言和Hadoop做了一次详细的讲解。 3. 为什么要让Hadoop结合R语言? 前面两章,R语言介绍和Hadoop介绍,让我们体会到了,两种技术在各自领域的强大。很多开发人员在计算机的角度,都会提出下面2个问题。 问题1: Hadoop的家族如此之强大,为什么还要结合R语言? 问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么? 下面我尝试着做一个解答: 问题1: Hadoop的家族如此之强大,为什么还要结合R语言? a. Hadoop家族的强大之处,在于对大数据的处理,让原来的不可能(TB,PB数据量计算),成为了可能。 b. R语言的强大之处,在于统计分析,在没有Hadoop之前,我们对于大数据的处理,要取样本,假设检验,做回归,长久以来R语言都是统计学家专属的工具。 c. 从a和b两点,我们可以看出,Hadoop重点是全量数据分析,而R语言重点是样本数据分析。 两种技术放在一起,刚好是最长补短! d. 模拟场景:对1PB的新闻网站访问日志做分析,预测未来流量变化 d1:用R语言,通过分析少量数据,对业务目标建回归建模,并定义指标 d2:数据中,提取指标数据 d3:用R语言模用Hadoop从海量日志型,对指标数据进行测试和调优 d4:用Hadoop分步式算法,重写R语言的模型,部署上线 这个场景中,R和Hadoop分别都起着非常重要的作用。以计算机开发人员的思路,所有有事情都用Hadoop去做,没有数据建模和证明,”预测的结果”一定是有问题的。以统计人员的思路,所有的事情都用R去做,以抽样方式,得到的“预测的结果”也一定是有问题的。 所以让二者结合,是产界业的必然的导向,也是产界业和学术界的交集,同时也为交叉学科的人才提供了无限广阔的想象空间。 问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么? a. Mahout是基于Hadoop的数据挖掘和机器学习的算法框架,Mahout的重点同样是解决大数据的计算的问题。 b. Mahout目前已支持的算法包括,协同过滤,推荐算法,聚类算法,分类算法,LDA, 朴素bayes,随机森林。上面的算法中,大部分都是距离的算法,可以通过矩阵分解后,充分利用MapReduce的并行计算框架,高效地完成计算任务。 c. Mahout的空白点,还有很多的数据挖掘算法,很难实现MapReduce并行化。Mahout的现有模型,都是通用模型,直接用到的项目中,计算结果只会比随机结果好一点点。Mahout二次开发,要求有深厚的JAVA和Hadoop的技术基础,最好兼有 “线性代数”,“概率统计”,“算法导论” 等的基础知识。所以想玩转Mahout真的不是一件容易的事情。 d. R语言同样提供了Mahout支持的约大多数算法(除专有算法),并且还支持大量的Mahout不支持的算法,算法的增长速度比mahout快N倍。并且开发简单,参数配置灵活,对小型数据集运算速度非常快。 责编:王雅京 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
最新专题 |
|