求用r语言编写的 随机森林冒泡排序算法代码 代码

R语言为Hadoop注入统计血脉
发表于 10:43|
来源粉丝日志|
摘要:Hadoop主要用来存储海量数据,R语言则完成MapReduce算法,替代Java的MapReduce实现。有了R语言与Hadoop结合而成的强大工具RHadoop,广大R语言爱好者甚至可以处理PB级大数据,大数据带来的单机性能问题一去不复返了。
【编者按】R是GNU的一个开源工具,具有S语言血统,擅长统计计算和统计制图。由Revolution Analytics发起的一个开源项目RHadoop将R语言与Hadoop结合在一起,很好发挥了R语言特长。广大R语言爱好者借助强大工具RHadoop,可以在大数据领域大展拳脚,这对R语言程序员来说无疑是个喜讯。作者从一个程序员的角度对R语言和Hadoop做了一次详细的讲解。以下为原文:前言写过几篇关于RHadoop的技术性文章,都是从统计的角度,介绍如何让R语言利用Hadoop处理大数据。今天决定反过来,从计算机开发人员的角度,介绍如何让Hadoop结合R语言,能做统计分析的事情。目录& R语言介绍&
Hadoop介绍& 为什么要让Hadoop结合R语言?& 如何让Hadoop结合R语言?& R和Hadoop在实际中的案例1. R语言介绍起源R语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU计划项目,所以也可以当作S语言的一种实现。R的语法是来自Scheme。跨平台,许可证R的源代码可自由下载使用,GNU通用公共许可证,可在多种平台下运行,包括UNIX,Linux,Windows和MacOS。R主要是以命令行操作为主,同时支持GUI的图形用户界面。R的数字基因R内建多种统计学及数字分析功能。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的物件导向功能。R的另一强项是绘图功能,制图具有印刷的素质,也可加入数学符号。虽然R主要用于统计分析或者开发统计相关的软体,但也有人用作矩阵计算。其分析速度可媲美GNU Octave甚至商业软件MATLAB。代码库CRAN为Comprehensive R
Archive Network的简称。它除了收藏了R的执行档下载版、源代码和说明文件,也收录了各种用户撰写的软件包。全球有超过一百个CRAN镜像站,上万个第三方的软件包。R的行业应用统计分析,应用数学,计量经济,金融分析,财经分析,人文科学,数据挖掘,人工智能,生物信息学,生物制药,全球地理科学,数据可视化。商业竞争对手SAS:(Statistical Analysis System)是SAS公司推出的一款用于数据分析和和决策支持的大型集成式模块化软件系统。SPSS:(Statistical Product and Service Solutions)是IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称。Matlab:(MATrix LABoratory),是MathWorks公司出品的一款商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。2. Hadoop介绍Hadoop对于计算机的人,都是耳熟能说的技术了。Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。Hadoop的家族成员:Hive, HBase,
Zookeeper, Avro, Pig, Ambari, Sqoop, Mahout, ChukwaHive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。自2006年,Hadoop以MapReduce和HDFS独立发展开始,到今年2013年不过7年时间,Hadoop的家族已经孵化出多个Apache的顶级项目。特别是最近1-2年,发展速度越来越快,又融入了很多新技术(YARN, Hcatalog, Oozie, Cassandra),都有点让我们都学不过来了。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:用Hadoop从海量日志数据中,提取指标数据d3:用R语言模型,对指标数据进行测试和调优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倍。并且开发简单,参数配置灵活,对小型数据集运算速度非常快。虽然,Mahout同样可以做数据挖掘和机器学习,但是和R语言的擅长领域并不重合。集百家之长,在适合的领域选择合适的技术,才能真正地“保质保量”做软件。4. 如何让Hadoop结合R语言?从上一节我们看到,Hadoop和R语言是可以互补的,但所介绍的场景都是Hadoop和R语言的分别处理各自的数据。一旦市场有需求,自然会有商家填补这个空白。1). RHadoopRHadoop是一款Hadoop和R语言的结合的产品,由RevolutionAnalytics公司开发,并将代码开源到github社区上面。RHadoop包含三个R包 (rmr,rhdfs,rhbase),分别是对应Hadoop系统架构中的,MapReduce,
HDFS, HBase 三个部分。2). RHiveRHive是一款通过R语言直接访问Hive的工具包,是由NexR一个韩国公司研发的。3). 重写Mahout用R语言重写Mahout的实现也是一种结合的思路,我也做过相关的尝试。4).Hadoop调用R上面说的都是R如何调用Hadoop,当然我们也可以反相操作,打通JAVA和R的连接通道,让Hadoop调用R的函数。但是,这部分还没有商家做出成形的产品。5. R和Hadoop在实际中的案例R和Hadoop的结合,技术门槛还是有点高的。对于一个人来说,不仅要掌握Linux, Java, Hadoop, R的技术,还要具备
软件开发,算法,概率统计,线性代数,数据可视化,行业背景
的一些基本素质。在公司部署这套环境,同样需要多个部门,多种人才的的配合。Hadoop运维,Hadoop算法研发,R语言建模,R语言MapReduce化,软件开发,测试等等。。。所以,这样的案例并不太多。展位未来对于R和Hadoop的结合,在近几年,肯定会生成爆发式的增长的。但由于跨学科会造成技术壁垒,人才会远远跟不上市场的需求。所以,肯定会有更多的大数据工具,被发明!机会就在我们的手中,也许明天你的创新,就是我们追逐的方向!!加油!!关于作者& 张丹(Conan), 程序员Java,R,PHP,Javascript&
weibo:@Conan_Z&
原文链接:(责编/毛梦琪)
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章后使用快捷导航没有帐号?
在R语言中对回归树模型、装袋算法与随机森林之间的简单比较
查看: 5514|
评论: |来自: 互联网
摘要: 在R语言中对回归树模型、装袋算法与随机森林之间的简单比较
回归树模型在之前的博客文章中已有介绍。而装袋算法与随机森林相对而言会生成多个树模型,再进行组合预测,其效果远大于单个树模型。装袋算法(bagging ...
在R语言中对回归树模型、装袋算法与随机森林之间的简单比较
回归树模型在之前的中已有介绍。而装袋算法与随机森林相对而言会生成多个树模型,再进行组合预测,其效果远大于单个树模型。装袋算法(bagging)采取自助法的思路,从样本中随机抽样,形成多个训练样本,生成多个树模型。然后以多数投票的方式来预测结果。随机森林则(randomForest)更进一步,不仅对样本进行抽样,还对变量进行抽样。下面来横向对比一下各算法。首先读入必要的程序包library(DMwR)library(rpart)library(ipred)library(randomForest)前二种算法可以计算缺失数据,但随机森林不行,所以还需将数据进行清洗整理data(algae)algae &- algae[-manyNAs(algae), ]clean.algae &- knnImputation(algae,k=10)回归树模型计算model.tree=rpart(a1 ~ ., data = clean.algae[, 1:12])pre.tree &- predict(model.tree, clean.algae)plot(pre.tree~clean.algae$a1)nmse1 &- mean((pre.tree- clean.algae[,'a1'])^2)/mean((mean(clean.algae[,'a1'])- clean.algae[,'a1'])^2)
装袋算法计算model.bagging &- bagging(a1 ~ ., data = clean.algae[, 1:12], nbagg=1000)pre.bagging=predict(model.bagging,clean.algae)plot(pre.bagging~clean.algae$a1)nmse2 &- mean((pre.bagging- clean.algae[,'a1'])^2)/mean((mean(clean.algae[,'a1'])- clean.algae[,'a1'])^2)
随机森林计算model.forest &-randomForest(a1 ~ ., data = clean.algae)#若有缺失数据需加入: na.action=na.omitpre.forest=predict(model.forest, clean.algae)plot(pre.forest~ clean.algae$a1)(nmse3 &- mean((pre.forest- clean.algae[,'a1'])^2)/mean((mean( clean.algae[,'a1'])- clean.algae[,'a1'])^2)
print(c(nmse1,nmse2,nmse3))用预测值与真值之间的相对离差平方和来作为测量误差的指标,其结果分别为:0...1002235 可以看出随机森林是最有效的。再来看看处理分类数据的表现,利用iris数据来判断花的种类library(randomForest)model.forest &-randomForest(Species ~ ., data = iris)pre.forest=predict(model.forest, iris)table(pre.forest,iris$Species)pre.forest
setosa versicolor virginica
versicolor
50library(rpart)model.tree=rpart(Species ~ ., data = iris,method='class')pre.tree=predict(model.tree, data = iris,type='class')table(pre.tree,iris$Species)pre.tree
setosa versicolor virginica
versicolor
45随机森林算法预测全对,而分类树模型则有六处错误。基于数据挖掘的分类和聚类算法研究及R语言实现_中华文本库
第1页/共55页
文本预览:
暨南大学硕士学位论文
暨南大学 硕士学位论文
题名(中英对照) 基于数据挖掘的分类和聚类算法研究及 R 语言实现 : A Study on Algorithm of Classification and Cluster
Based on Data Mining and Realization by R programe 作者姓名: 方匡南
指导教师姓名 及学位、职称:
王斌会 博士
学科、专业名称:
论文提交日期:
2007 年 5 月
论文答辩日期:
2007 年 6 月
答辩委员会主席:
论文评阅人:
学位授予单位和日期:
基于数据挖掘的分类和聚类算法研究及 R 语言实现
独 创 性 声 明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据 我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的 研究成果,也不包含为获得
或其他教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
学位论文作者签名:
签字日期:
学位论文版权使用授权书
本学位论文作者完全了解
有关保留、使用学位论文的规定,有权保留
并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权
可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩
印或扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书)
学位论文作者签名: 签字日期: 年 月 日
导师签名: 签字日期: 年 月 日
学位论文作者毕业后去向: 工作单位: 通讯地址: 电话: 邮编:
暨南大学硕士学位论文
数据挖掘是个新兴的研究领域,涉及到统计学、数据库、机器学习等众多学科,正以其 强大的功能和广泛的应用受到高度的关注。数据挖掘的方法众多,其中分类、聚类方法是数 据挖掘应用最多的方法,而算法研究是数据挖掘研究领域的重中之重,算法的好坏直接影响 到数据挖掘的效率,所以本文主要深入系统地研究分类、聚类算法。虽然目前研究分类、聚 类算法的文章比较多,但大多数研究只停留在理论上的探讨,并没有相应的算法实现。本文 着重于算法实现的研究,在国内首次利用 R 语言实现数据挖掘算法,因为 R 语言相对于其他 一些软件有着免费、开放源代码、算法更新速度快等优点。 论文第一章介绍数据挖掘的研究背景、目的和意义以及研究方法和框架。第二章主要介 绍比较各分类算法及 R 语言实现,包括基于距离分类的 KNN 算法;基于决策树方法的 C4.5 算法、CART 算法;基于神经网络的 BP
第1页/共55页
寻找更多 ""《数据挖掘必备技能—R语言实践篇》 - 小象学院 - 中国最专业的Hadoop,Spark大数据在线教育平台——权威课程:Hadoop培训,Spark培训,HBase培训,Hive培训,Mahout培训等
课 程 名 称
《数据挖掘必备技能—R语言实践篇》
本课程学习面向数据挖掘过程中使用R语言进行数据处理、计算和可视化软件系统,掌握R软件包作为数学计算的环境提供一些集成的统计工具,也包括大量的数据挖掘算法、统计计算的函数,通过本课程学习如何灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
培 训 方 式
视频学习 + 在线答疑 + 每周作业 + 结业考试
授 课 对 象
数据分析师、数据科学家;
商业智能(BI)和企业数据仓库(EDW)的管理人员、建模人员、分析和开发人员、系统管理员等;
想了解和学习数据挖掘实战案例的朋友。
课 程 大 纲
第一周 数据处理
缺失值处理
缺失值处理思路概述
基于R语言的缺失值可视化呈现
基于R语言的缺失值处理实现
噪声值处理
噪声值处理思路概述
基于R语言的噪声值可视化呈现
基于R语言的噪声值处理实现
数据泛化概述及R语言实现
规范化概述及R语言实现
属性构造概述及R语言实现
属性子集的选择及R语言实现
维度规约概述及R语言实现
第二周 数据探索
相关性分析
相关性分析原理
基于R语言的相关性实现
对应分析原理
基于R语言的对应分析实现
网络分析原理
基于R语言的网络分析实现
第三周 模型选择、Logistic回归及决策树算法
模型选择方法
Logistic回归算法原理及实现
Logistic回归原理
基于R语言的Logistic回归实现
决策树算法原理及实现
C4.5决策树算法原理
CART决策树算法原理
基于R语言的决策树实现
基于R语言的随机森林实现
第四周 贝叶斯算法及支持向量机
贝叶斯算法原理及实现
朴素贝叶斯分类器原理
贝叶斯网络分类原理
基于R语言的朴素贝叶斯分类器实现
基于R语言的贝叶斯网络分类实现
支持向量机原理及实现
支持向量机的原理
基于R语言的支持向量机实现
第五周 神经网络算法原理及实现
感知器原理
线性神经网络原理
BP神经网络原理
基于R语言的BP神经网络实例
第六周 聚类算法原理及实现
基于划分的聚类算法原理
基于层次的聚类算法原理
基于密度的聚类算法原理
基于R语言的划分聚类算法实现
基于R语言的层次聚类算法实现
基于R语言的密度聚类算法实现
第七周 关联算法及时间序列
关联算法原理及实现
Apriori算法原理
Eclat算法原理
基于R语言的Apriori算法实现
基于R语言的Eclat算法实现
时间序列预测及案例
时间序列原理简介
基于R语言的ARIMA模型实现
第八周 模型评估及优化
分类模型评估方法
分类模型评估原理
基于R语言的分类模型评估实现
数值预测评估方法
数值预测评估原理
基于R语言的数值预测评估实现
聚类模型评估方法
聚类模型评估原理
基于R语言的聚类模型评估实现
常见模型优化方法
客户营销响应模型优化实例
客户营销响应模型基于R语言的实现
客户营销响应模型基于R语言的优化
客户偏好模型优化实例
客户偏好模型基于R语言的实现
客户偏好模型基于R语言的优化
主讲人:游皓麟
数据分析师,在互联网/电信/电力领域具有丰富的建模经验。
精通Clementine、R语言等数据挖掘工具,对空间分析、欺诈检测、广告反作弊、推荐系统、客户及营销建模有深刻理解。
常见问题:
试听视频:
在 线 咨 询:
微信公众号:ChinaHadoop
本课程学习面向数据挖掘过程中使用R语言进行数据处理、计算和可视化软件系统,掌握R软件包作为数学计算的环境提供一些集成的统计工具,也包括大量的数据挖掘算法、统计计算的函数,通过本课程学习如何灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
第 1 章: 数据处理
第 1 节: 缺失值处理
第 2 节: 噪声值处理
第 3 节: 数据变换
第 4 节: 数据归约
第 2 章: 数据探索
第 1 节: 相关性分析
第 2 节: 对应分析
第 3 节: 网络分析
第 3 章: 模型选择、Logistic回归及决策树算法
第 1 节: 模型选择的方法
第 2 节: Logistic回归算法原理
第 3 节: C4.5决策树算法原理
第 4 节: CART决策树算法原理
第 5 节: 随机森林算法原理
第 4 章: 贝叶斯算法及支持向量机
第 1 节: 朴素贝叶斯分类器原理
第 2 节: 贝叶斯网络分类原理
第 3 节: 支持向量机原理
第 5 章: 神经网络算法原理及实现
第 1 节: 感知器原理
第 2 节: 线性神经网络原理
第 3 节: BP神经网络原理
第 6 章: 聚类算法原理及实现
第 1 节: 基于划分的聚类算法原理
第 2 节: 基于层次的聚类算法原理
第 3 节: 基于密度的聚类算法原理
第 7 章: 关联算法及时间序列
第 1 节: Apriori算法原理
第 2 节: Eclat算法原理
第 3 节: 时间序列原理简介
第 8 章: 模型评估及优化
第 1 节: 分类模型评估原理
第 2 节: 数值预测评估原理
第 3 节: 聚类模型评估原理
第 4 节: 常见模型优化方法
第 5 节: 客户营销响应模型优化实例
第 6 节: 客户偏好模型优化实例
正在载入课程评价数据...
数据分析师,在互联网/电信/电力领域具有丰富的建模经验,精通Clementine、R语言等数据挖掘工具,对空间分析、欺诈检测、广告反作弊、推荐系统、客户及营销建模有深刻理解。
服务时间: 9:00 - 19:00
电话客服一:
电话客服二:

我要回帖

更多关于 冒泡排序算法代码 的文章

 

随机推荐