数据挖掘实验工具之R语言 r语言数据挖掘期末试题
bigegpt 2024-10-12 06:43 4 浏览
一、R介绍
R是一套完整的数据处理、计算和制图软件系统。其功能包括数据存储和处理系统;数组运 算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
R的思想:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算 的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
二、为什么选择R
R是实验工具,教学工具,但不是生产工具。R不适合处理大数据,一般来讲,处理百万行数据时就已经很吃力了,因为R处理的数据要放到内存里做运算。
Rhadoop,RSpark
使用R教学更有利于说明算法模型,利用R的绘图能够更直观了解算法模型。只要掌握算法 模型的原理,后期只需要更换处理工具即可,比如由R转到Hadoop的Mathout,或转到 Spark,就是一个简单的工具转换,而算法模型的原理都是一样的。
此外,在处理大数据时,往往是没有必要将全部数据都当做样本来处理的,我们可以抽样, 比如从1亿条数据里抽出1千万调数据,建立模型。很多场景下,抽样得出的模型和全部样本 得出的模型相差不多。当然,抽样也是很有学问的,抽样的好坏直接决定了模型的正确与 否。在大学里,如果是统计学专业,是有一门专门的课学习抽样的。
但是有些场景确实是不适合抽样的,比如对1亿个用户进行聚类分析,此时抽样就不合适 了。那此时可以利用像Hadoop、Spark等并行计算的大数据框架来处理运算。
安装R:
启动R:
三、R基本数据对象
1、向量(vector):由一组有序的元素构成
2、矩阵(matrix):更一般的说数组是向量在多维情况下的一般形式。事实上它们是可以被
两个或更多的指标索引的向量,并且以特定的方式被打印出来。
3、因子(factors)提供一种处理分类数据更简洁的方式
4、列表(list)是向量的一般形式,并不需要保证其中的元素都是相同的类型
5、数据帧(data frame)是一种与矩阵相似的结构,其中的列可以是不同的数据类型。可以
把数据框看作一种数据"矩阵",它的每行是一个观测单位,而且(可能)同时包含数值型和分
类的变量。
6、函数(function)能够在R的workspace中存储的对象。我们可以通过函数来扩展R的功 能。
四、基本函数
1、创建向量:c()
x <-c(10.4, 5.6, 3.1, 6.4, 21.7)
c()是创建向量函数,赋值运算符是'<-'。表示创建一维向量复制给变量。
说明:赋值号可以用“<-”,也可以用“=”。 虽然,创建向量的初始元素类型不同,但是创建之后的向量类型都被转换成一样的了。
2、生成序列:seq()
生成一个序列(一个一维向量),从2到10,默认的递增步长是1,也可以用:来代替。
指定步长为0.2: 从2开始,步长为3,产生4个数:
在[-5,5]区间生成100个数:(这种方式重点掌握,绘图时刻画x轴要用到)
3、根据已有序列生成新序列:rep()
重复整个向量:
4、拼接函数:paste()
拼接多个数据:
拼接多个数据,指定分隔符: 拼接和序列相结合:
说明:sep——separator(分隔符),默认是空格。
5、数据子集的选择与修改:[]
任务:统计一个向量里满足条件的元素个数
向量data中在300与400之间的元素有3个。
汇总函数:summary()
可以查看对象的基本信息(min, max, mean, etc.),也可以用于方程系数的基本信息和检验信 息。这个函数可以介于某组数据或某个模型做信息的总结。
Min:最小值 Q1:第一分位数 Median:中位数(Q2:第二分位数)
Q3:第三分位数
Mean:平均值
Max:最大值
6、因子函数:factor() 因子是一种向量对象,它给自己的组件指定了一个离散的分类(分组),它的组件由其他等 长的向量组成。R提供了有序因子和无序因子。 通俗点说,因子就是将对象的值分成不同的组(levels)。 用函数factor()创建一个因子,levels按序排列(字母序或数值序)。
data <- c("湖南","四川","四川","湖南","贵州","湖南","贵州")
利用factor()函数,可以达到聚类去重的目的。
7、矩阵函数:matrix()
线性代数看同济的《 线性代数(第五版)》
微积分看《普林斯顿微积分读本》修订版
要获取矩阵的某个元素值:data[i,j]
如何产生单位矩阵:diag(n)——diagnal
产生指定元素的矩阵:
> A <- matrix(c(4,-1,2,1,1,1,0,3,0,3,1,4),4,3); A
8、矩阵转置函数 t()——transposition
9、矩阵维数函数 dim()
返回矩阵的维数或更改矩阵的维数。
获取矩阵维数:
更改矩阵维数:
10、array函数,需要用dim来指定行数、列数
11、cbind()——列合并, rbind——行合并 cbind()按照水平方向,或者说按列的方式将矩阵连接到一起。 rbind()按照垂直的方向,或者说按行的方式将矩阵连接到一起。
12、list函数:根据属性名获取值 列表是由称作组件的有序对象集合构成的对象。组件的模式或类型不一定相同。想取得列表 中某个属性值,用$属性名来得到。
13、数据帧函数:data.frame()
数据帧会被当作各列具有不同模式和属性的矩阵。数据帧按照矩阵的方式显示,选取的行或 列也按照矩阵的方式来索引。
14、attach和detach函数 当觉得使用'$'引用数据帧元素(如't$home')麻烦时,可以进行数据帧挂接,这样可以直接引用 数据帧内的元素,而无需'