R语言简介

来源:互联网 发布:哪个火车票比较好知乎 编辑:程序博客网 时间:2024/06/14 11:26

前言:

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

起源:

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而对于S语言,它是由AT&T贝尔实验室研发的一种用来进行数据探索、统计分析和作图的解释型语言。

特点:

1)R是自由软件。即它是完全免费、开放源码的。

2)R是一种可编程的语言。

3)所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。

4)R具有强大的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。

R安装:

和普通的软件一样,从网上下载和自己电脑想匹配的版本下载安装即可。

我用的是64位的R-3.0.1

R包:

R语言的使用很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对R的插件,不同的插件满足不同的需求。

安装包:

通过菜单选择:程序包->安装程序包->在弹出的对话框中,现在你要安装的包,然后确定->在弹出的packages对话框中选择自己所需的包->确定即可。

过程如下:

编码运行:

在编写代码时首先要改变工作目录,这是非常重要的,否则找不到你所要加载的代码和数据。

注意:将工作目录该为“代码和数据”所存放的位置。

方法:

实例:

安装所需要的包,改变到对应的工作目录这时就可以编写具体的代码了。

基于拓展SOM聚类的红酒品质预测:

> WineData<-read.table(file="红酒品质数据.txt",header=TRUE)> WineData<-WineData[,-1]   > set.seed(12345)> flag<-sample(x=1:length(WineData[,1]),size=round(length(WineData[,1])*0.7))> WineData_train<-WineData[flag,]   > WineData_test<-WineData[-flag,]    > library("kohonen")载入需要的程辑包:class载入需要的程辑包:MASS> set.seed(12345)> Pre.som<-xyf(data=scale(WineData_train[,-12]),Y=classvec2classmat(WineData_train$quality),+   contin=FALSE, xweight=0.5,grid=somgrid(3,3,"rectangular"),rlen=200)> summary(Pre.som)xyf map of size 3x3 with a rectangular topology.Training data included; dimension is 1119 by 11Dimension of Y: 1119 by 6Mean distance to the closest unit in the map: 5.668446> par(mfrow=c(2,3))> plot(Pre.som,type="changes",main="红酒拓展SOM网络聚类评价图")> plot(Pre.som,type="quality",main="类内平均距离")> plot(Pre.som,type="code")> plot(Pre.som,type="counts",main="样本分布(训练集)")> quality.pre<-predict(object=Pre.som,newdata=scale(WineData_test[-12]))  #对测试样本集预测> plot(Pre.som,type="property",property=table(quality.pre$unit.classif),main="样本分布(测试集)")> (ConfM.SOM<-table(WineData_test$quality,quality.pre$prediction))         3   4   5   6   7   8  3   0   1   0   0   0   0  4   0   6   3   2   1   0  5   0  35 115  56   5   0  6   0  10  69  81  36   0  7   0   0   7  26  25   0  8   0   0   0   2   0   0> round(prop.table(ConfM.SOM,margin=1),2)          3    4    5    6    7    8  3 0.00 1.00 0.00 0.00 0.00 0.00  4 0.00 0.50 0.25 0.17 0.08 0.00  5 0.00 0.17 0.55 0.27 0.02 0.00  6 0.00 0.05 0.35 0.41 0.18 0.00  7 0.00 0.00 0.12 0.45 0.43 0.00  8 0.00 0.00 0.00 1.00 0.00 0.00> (Err.SOM<-(sum(ConfM.SOM)-sum(diag(ConfM.SOM)))/sum(ConfM.SOM))  [1] 0.5270833

 

总结:

(1)本例建立的拓展SOM网络,输出层有3行3列,对应9个小类,且呈矩形形状。输入变量和输出变量对应聚类对距离的贡献权值均为0.5。迭代周期为200。同时,将输出变量转换成虚拟变量矩阵。

(2)有11个输入变量,输出变量转为虚拟变量矩阵后有6列。停止迭代时观测与类质心距离的平均值是5.67。

(3)包的名称是kohonen。

(4)用到的函数主要有xyf()、classvec2classmat()、somgrid()、plot()、predict()。

1 1
原创粉丝点击