全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用 BIG DATA 刘鹏 主编 张燕 张重生 张志立 副主编
刘 鹏 教授,清华大学博士。现任南京大数据研究院院长、中国信息协会大数据分会副会长、中国大数据技术与应用联盟副理事长。 主持完成科研项目25项,发表论文80余篇,出版专业书籍15本。获部级科技进步二等奖4项、三等奖4项。主编的《云计算》被全国高校普遍采用,被引用量排名中国计算机图书第一名。创办了知名的中国云计算(chinacloud.cn)和中国大数据(thebigdata.cn)网站。 曾率队夺得2002 PennySort国际计算机排序比赛冠军,两次夺得全国高校科技比赛最高奖,并三次夺得清华大学科技比赛最高奖。 荣获“全军十大学习成才标兵”(排名第一)、南京“十大杰出青年”、江苏省中青年科学技术带头人、清华大学“学术新秀”等称号。
第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用 第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 3 of 44
R 语言 十大热门编程语言第七位 5.1 R语言简介 数据挖掘 用于统计计算和作图的语言 机器学习 自然语言处理等 计量经济学 免费、开源及 《大数据》配套PPT课件 十大热门编程语言第七位 数据挖掘 机器学习 自然语言处理等 用于统计计算和作图的语言 R 语言 计量经济学 实证金融学 统计遗传学等 免费、开源及 统计模块齐全 4 of 44
5.1 R语言简介 5.1.1R语言产生与发展历程 S语言 1995年 2013年 基于S语言的一个GNU项目,语法来自Scheme语言, 《大数据》配套PPT课件 5.1.1R语言产生与发展历程 S语言 1995年 2013年 基于S语言的一个GNU项目,语法来自Scheme语言, R语言的源代码正式发布到自由软件协会的FTP上 核心开发团队达到20人,来自牛津大学、AT&T实验室等等。 不单是一门语言,更是一个数据计算与分析的环境,内容涵盖了从统计计算到机器学习,从金融分析到生物信息,从社会网络分析到自然语言处理,从各种数据库各种语言接口到高性能计算模型 5 of 44
5.1 R语言简介 5.1.2 R语言基本功能介绍 R语言是一套完整的数据处理、计算和制图软件系统,主要包括以下功能 数据存储和处理系统 《大数据》配套PPT课件 5.1.2 R语言基本功能介绍 R语言是一套完整的数据处理、计算和制图软件系统,主要包括以下功能 数据存储和处理系统 数组运算工具,(其向量、矩阵运算方面功能尤其强大) 完整连贯的统计分析工具 优秀的统计制图功能 6 of 44
R语言 读取 存储 5.1 R语言简介 丰富的数据读取和存储能力 《大数据》配套PPT课件 丰富的数据读取和存储能力 R语言 读取 存储 可以保存和加载R语言的数据,与R.data的交互是通过R语言的save( )函数和load()函数实现的 能够加载和导出.csv文件(write.csv()函数和read.csv()函数) 能够导入SPSS/SAS/Matlab等数据集 可以通过RODBC接口,从数据库中导入数据 可以通过odbcConnectExcel接口从Excel表格中导入数据 7 of 44
筛选 排列 选择 变形 汇总 分组 5.1 R语言简介 丰富的数据处理功能 《大数据》配套PPT课件 丰富的数据处理功能 数据挖掘中,需要花70%以上的时间在数据处理上,R语言提供丰富的数据处理功能 筛选 filter() 按给定的逻辑判断筛选出符合要求的子数据集 排列 arrange() 按给定的列名依次对行进行排序 选择 select() 用列名作参数来选择子数据集 变形 mutate()或transformation()用来进行列变形 汇总 summarise()进行汇总操作,返回一维结果 分组 分组动作 group_by() 8 of 44
5.1 R语言简介 丰富的数据处理能力 向量 因子 数组 矩阵 列表 数据框 特殊值数据 有用函数 提供了获取数据类型信息的一些有用函数 《大数据》配套PPT课件 丰富的数据处理能力 向量 R语言处理数据的最基本单位是向量,而不是原子数据 因子 R语言定义了一类非常特殊的数据类型:因子 数组 数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的 矩阵 较复杂的继承关系,和数组的关系既是父亲又是儿子,还是孙子 列表 列表由向量直接派生而来 数据框 可以将几个不同类型但长度相同的向量合并到一个数据框 特殊值数据 定义了如NULL、NA、NaN、inf等特殊数据 有用函数 提供了获取数据类型信息的一些有用函数 9 of 44
R语言 应用领域 5.1 R语言简介 5.1.3 R语言常见的应用领域 统计分析 人工智能 应用数学 计量经济 数据挖掘 金融分析 《大数据》配套PPT课件 5.1.3 R语言常见的应用领域 统计分析 人工智能 应用数学 R语言 应用领域 计量经济 数据挖掘 金融分析 数据可视化 财经分析 生物信息学 10 of 44
第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用 第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 11 of 44
5.2 R与数据挖掘 数据挖掘 R语言与数据挖掘有关的任务视图 R语言主要用于统计计算和统计制图,提供了大量的统计和制图工具 《大数据》配套PPT课件 数据挖掘 数据挖掘(Data Mining)是从大量的数据中发现有趣知识的过程,涉及统计学、机器学习、模式识别等多个交叉; 主要技术包括分类与预测、聚类、离群点检测、关联规则、序列分析和文本挖掘以及社交网络分析和情感分析等。 R语言与数据挖掘有关的任务视图 MachineLearning:主要涉及机器学习和统计学习功能 Cluster:主要涉及聚类分析和有限混合模型 TimeSeries:主要涉及时间序列分析 Multivariate:主要用于多元统计分析及其算法 Spatial:主要用于空间数据分析 R语言主要用于统计计算和统计制图,提供了大量的统计和制图工具 12 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法 K-近邻算法 决策树 支持向量机 分类与预测算法 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法 K-近邻算法 决策树 支持向量机 分类与预测算法 13 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—K-近邻算法 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—K-近邻算法 如果一个样本与特征空间中的K个最相似(特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 > library(kknn) > data(iris) > m <- dim(iris)[1] > val <- sample(1:m, size =round(m/3), replace = FALSE, > +prob= rep(1/m, m)) > iris.learn <- iris[-val,] > iris.valid <- iris[val,] > iris.kknn <- kknn(Species~.,iris.learn, iris.valid, distance = 5, > +kernel= "triangular") > summary(iris.kknn) > fit <- fitted(iris.kknn) > table(iris.valid$Species, fit) fit setosa versicolor virginica setosa 12 0 0 versicolor 0 21 0 virginica 0 0 17 kknn函数的使用 14 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—决策树 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—决策树 决策树(Decision Tree)是一种依托于分类、训练上的预测树,根据已知预测、归类未来 生成树阶段 决策树修剪阶段 iris数据集的决策树 15 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—支持向量机 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 分类与预测算法—支持向量机 支持向量机(Support Vector Machine,SVM)是一个二分类的办法,即将数据集中的数据分为两类 SVM中的超平面对比 利用超平面分割数据集 16 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包 “聚类”是根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组(或称为簇),并对每个簇进行描述的过程 常用的聚类算法主要包括K-means聚类、层次聚类和基于密度的聚类 K-means聚类 层次聚类 基于密度的聚类 17 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—K-means聚类 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—K-means聚类 同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小 部分鸢尾花数据的3-means聚类结果 18 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—层次聚类 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—层次聚类 一层一层地进行聚类,可以从下而上地把小的cluster合并聚集,也可以从上而下地将大的cluster进行分割 iris数据集中20个样本的层次聚类结果 19 of 44
5.2 R与数据挖掘 关键 参数 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—基于密度的聚类 eps 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 聚类算法及其R包—基于密度的聚类 eps 可到距离,用于定义邻域的大小 关键 参数 MinPts 最小数目的对象点 DBSCAN算法的数据集 DBSCAN算法的密度聚类结果 20 of 44
5.2 R与数据挖掘 离群点检测与 R 包 5.2.1 R软件包与常见的数据挖掘算法介绍 离群点检测与R包 返回的统计信息用于绘制箱体图 《大数据》配套PPT课件 5.2.1 R软件包与常见的数据挖掘算法介绍 离群点检测与R包 离群点检测与 R 包 单变量的离群点检测 返回的统计信息用于绘制箱体图 多变量离群点检测 实现多变量离群点的检测 局部离群点因子检测 基于密度的局部离群点检测 用聚类方法进行离散点检测 将不属于任务一类的数据作为异常值检测 21 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 关联规则与R包 《大数据》配套PPT课件 22 of 44 Groceries数据集关联度的散点图 top-10关联规则关系图 22 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 时间序列分类与R包 《大数据》配套PPT课件 23 of 44 人口出生率时间序列图 出生率时间序列解构图 23 of 44
5.2 R与数据挖掘 5.2.1 R软件包与常见的数据挖掘算法介绍 文本挖掘 提取文本中的词语,并统计频率 《大数据》配套PPT课件 24 of 44
5.2 R与数据挖掘 5.2.2 R在数据挖掘中的应用举例 河流中海藻的集中爆发不仅会对河流的生态环境造成破坏,还会影响河流的水质 背景 《大数据》配套PPT课件 5.2.2 R在数据挖掘中的应用举例 背景 河流中海藻的集中爆发不仅会对河流的生态环境造成破坏,还会影响河流的水质 需求 基于以往的观测数据,对河流中海藻的爆发情况进行预测并采取必要防范措施以提高河流的水质量 方法 以海藻样本数据为数据集,通过数据挖掘的方式分析影响海藻爆发的主要因素,并通过构建预测模型,对海藻的爆发情况进行事先预测 25 of 44
5.2 R与数据挖掘 数据集加载 数据集中的数据分析 无效数据处理 模型的评价与选择 预测模型的构建 海藻爆发频率预测 《大数据》配套PPT课件 5.2.2 R在数据挖掘中的应用举例 数据集加载 数据集中的数据分析 无效数据处理 模型的评价与选择 预测模型的构建 海藻爆发频率预测 完成对海藻爆发情况的实现预测 26 of 44
5.2 R与数据挖掘 5.2.2 R在数据挖掘中的应用举例 部分代码 线性回归和回归树模型的预测 回归树的MAE值为8.48 《大数据》配套PPT课件 5.2.2 R在数据挖掘中的应用举例 部分代码 线性回归和回归树模型的预测 > lm.predictions.a1 <- predict(final.lm, clean.algae) #计算线性回归模型的预测值 > rt.predictions.a1 <- predict(rt.a1, algae) #计算回归树模型的预测值 > mae.a1.lm <- mean(abs(lm.predictions.a1 - algae[, "a1"])) #计算预测值的平均误差 > mae.a1.rt <- mean(abs(rt.predictions.a1 - algae[, "a1"])) #计算预测值的平均误差 > mae.a1.lm #显示线性回归模型预测值的平均误差 [1] 13.10681 > mae.a1.rt #显示回归树模型预测值的平均误差 [1] 8.480619 回归树的MAE值为8.48 线性回归模型的MAE值 13.11 回归树模型的预测值的平均误差要优于线性回归模型预测值的平均误差 27 of 44
第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用 第五章 R语言 5.1 R语言简介 5.2 R与数据挖掘 5.3 SparkR 习题 28 of 44
5.3 SparkR 《大数据》配套PPT课件 5.3.1 SparkR 简介 SparkR就是用R语言编写Spark程序,它允许数据科学家分析大规模的数据集,并通过R Shell交互式地在SparkR上运行作业上 SparkR的核心是SparkR DataFrame,数据组织成一个带有列名的分布式数据集 1 taFrames的数据来源非常广泛 2 高扩展性 3 DataFrames的优化 4 对RDD API的支持 29 of 44
5.3 SparkR 《大数据》配套PPT课件 5.3.2 SparkR 环境搭建 首先在官网下载R的软件包,官网网址为http://cran.rstudio.com/ 1. Linux下安装R SparkR包对rJava包有依赖关系,因此,在安装SparkR之前,需要先完成rJava包的安装 2. rJava包安装 为了避免Spark版本的兼容问题,采用源码编译的方式来安装SparkR 3. SparkR的安装 30 of 44
5.3 SparkR 《大数据》配套PPT课件 5.3.3 SparkR 使用 SparkSession(即Spark会话)是SparkR的切入点,它使得R程序和Spark集群相互通信 创建SparkSession 根据需要从本地R数据框(R data frame),Hive表(Hive table)或者从其他数据源创建SparkDataFrmes 创建SparkDataFrmes 31 of 44
SparkR 5.3 SparkR 5.3.4 SparkR 与HQL 《大数据》配套PPT课件 5.3.4 SparkR 与HQL HQL是一种类SQL的语言,这种语言最终被转化为Map/Reduce,通过Hive可以使用HQL语言查询存放在HDFS上的数据 利用Hive表来创建DataFrame; 将DataFrame转化为Spark SQL; SparkR提供了对HQL的支持和API,但是Hive适合用来对一段时间内的数据进行分析查询 SparkR 32 of 44
5.3 SparkR 广义线性模型 加速失效时间生存回归模型 朴素贝叶斯 模型 K-means模型 模型的保存 与加载 《大数据》配套PPT课件 5.3.5 SparkR实现的主要机器学习算法概述 简单最小二乘回归(OLS)的扩展,响应变量可以是正整数或分类数据,为某指数分布族,期望值函数与预测变量之间为线性关系,需要指定分布类型和连接函数 广义线性模型 加速失效时间生存回归模型 AFT模型将经典线性回归模型的建模方法直接拓展到了生存分析领域,即具有截尾生存时间的情形 朴素贝叶斯 模型 通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,选择具有最大后验概率的类作为该对象所属的类 K-means模型 SparkR提供了对K-means算法的支持,K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标 模型的保存 与加载 模型训练好了以后,需要将训练好的模型保存起来,以便下一次再用 33 of 44
5.3 SparkR 加载Spark 解析 文件 矩阵 形式 预测 模型 模型 评价 5.3.6 SparkR在数据分析中的应用举例 《大数据》配套PPT课件 5.3.6 SparkR在数据分析中的应用举例 利用SparkR提供的接口函数,在Hadoop集群环境中对“德国信用数据集”进行处理,并利用训练得到的信用梯度损失模型对贷款人的信用度进行预测 加载Spark 解析 文件 矩阵 形式 预测 模型 模型 评价 从HDFS中读取德国信用数据文件 分割为训练数据集和测试数据集 完成模型训练和数据预测 梯度下降算法优化损失函数和逻辑回归算法 对借款人的信用进行评级 34 of 44
5.3 SparkR 5.3.6 SparkR在数据分析中的应用举例 部分代码 《大数据》配套PPT课件 5.3.6 SparkR在数据分析中的应用举例 部分代码 利用梯度下降算法优化损失函数和逻辑回归算法,计算信用等级预测模型 # 初始化向量theta > theta<- runif(n=25, min = -1, max = 1) # logistic函数 > hypot <- function(z) { + 1/(1+exp(-z)) + } # 损失函数的梯度计算 > gCost <- function(t,X,y) { + 1/nrow(X)*(t(X)%*%(hypot(X%*%t)-y)) # 定义训练函数 + train <- function(theta, rdd) { # 计算梯度 + gradient_rdd <- lapplyPartition(rdd, function(part) { + X <- part[,1:25] + y <- part[,26] + p_gradient <- gCost(theta,X,y) + list(list(1, p_gradient)) + }) + agg_gradient_rdd <- reduceByKey(gradient_rdd, '+', 1L) # 一次迭代聚合输出 + collect(agg_gradient_rdd)[[1]][[2]] # 由梯度下降算法优化损失函数 # alpha :学习速率 # steps :迭代次数 # tol :收敛精度 > alpha <- 0.1 > tol <- 1e-4 > step <- 1 > while(T) { + cat("step: ",step,"\n") + p_gradient <- train(theta, matrix_train_rdd) + theta <- theta-alpha*p_gradient + gradient <- train(theta, matrix_train_rdd) #根据梯度下降算法进行模型训练 + if(abs(norm(gradient,type="F")-norm(p_gradient,type="F"))<=tol) break + step <- step+1 + } 35 of 44
习题: R语言是解释性语言还是编译性语言? 简述R语言的基本功能。 R语言通常用在哪些领域? 简述R软件包的安装和加载过程? 如何使用“聚类”和“分类”对数据样本进行分组? 查阅相关资料,实例演示R语言在数据挖掘中的应用。 查阅相关资料,实例演示SparkR环境搭建。 SparkR DataFrame的作用有哪些? 简述SparkR与机器学习的关系。 查阅相关资料,实例演示SparkR在数据分析中的应用。
百度排名首位的大数据资料和交流中心
百度排名首位的云计算资料和交流中心
BDRack大数据实验一体机 虚拟出百套集群,并行开展大数据实验 预装各种流行云计算和大数据平台 提供配套实验教程、课件、PPT和培训
知名微信公众号推荐 学习大数据必须关注的公众号 刘鹏看未来 云计算头条 中国大数据 云创大数据 眼光决定成败,与刘鹏教授看未来。 微信号:lpoutlook 微信号: chinacloudnj 眼光决定成败,与刘鹏教授看未来。 刘鹏,清华博士,《云计算》作者。 资源丰富、分析深入、更新及时的云计算知识共享平台。 中国大数据 云创大数据 微信号: cStor_cn 微信号: cstorbigdata 国内大数据龙头企业。提供领先的云存储、云数据库、云视频、云传输产品和解决方案。 分享大数据技术,剖析大数据案例,讨论大数据话题。
运用大数据,精彩你生活 免费大数据App推荐
感谢聆听