R语言中sample()的一些用法以及随机选择出测试样本和训练样本

原创 2018年04月17日 21:47:08

根据样本数据随机选择20%做测试样本,80%做训练样本

# 数据划分
# 设置工作空间
# 把“数据及程序”文件夹拷贝到F盘下,再用setwd设置工作空间
setwd("F:/数据及程序/chapter6/示例程序")
# 把数据分为两部分:训练数据、测试数据
# 读入数据
Data <- read.csv("./data/model.csv")
# 数据命名
colnames(Data) <- c("time", "userid", "ele_ind", "loss_ind", "alarm_ind", "class")
# 数据分割

set.seed(1234)  # 设置随机种子,改成set.seed(5)...都行,R语言中set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。如果不设定种子,生成的随机数无法重现。

> set.seed(5) #设定种子

> x<-rnorm(10) # 在设定种子的前提下生成10个随机数

> x

[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639

[8] -0.63537131 -0.28577363 0.13810822

> set.seed(5) # 设定种子

> y<-rnorm(10)

> y

[1] -0.84085548 1.38435934 -1.25549186 0.07014277 1.71144087 -0.60290798 -0.47216639

[8] -0.63537131 -0.28577363 0.13810822

)# 定义序列ind,随机抽取1和2,1的个数占80%,2的个数占20%
ind <- sample(2, nrow(Data), replace = TRUE, prob = c(0.8, 0.2))
trainData <- Data[ind == 1,]
 # 训练数据
testData <- Data[ind == 2,]  # 测试数据
# 数据存储
write.csv(trainData, "./tmp/trainData.csv", row.names = FALSE)

write.csv(testData, "./tmp/testData.csv", row.names = FALSE)

。。。。。。。。。。。。。。。。完。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

> set.seed(1234)  # 设置随机种子
 set.seed()中的数字是一个标记啦,下次你还想取这个随机序列就启用set.seed(1234),后面随机函数会和上次一样生成样本。
> ind <- sample(3, nrow(Data), replace = TRUE, prob = c(0.8, 0.2,0.4))
> ind
  [1] 1 3 3 3 2 3 1 1 3 1 3 1 1 2 1 3 1 1 1 1 1 1 1 1 1 3 1 2
 [29] 3 1 1 1 1 1 1 3 1 1 2 3 1 3 1 3 1 1 3 1 1 3 1 1 3 1 1 1
 [57] 1 3 1 3 2 1 1 1 1 3 1 1 1 1 1 2 1 3 1 1 1 1 1 3 2 1 1 1
 [85] 1 2 1 1 1 2 1 2 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 3 1


其他关于sample()的小例子

> x=1:10
> sample(x=x)

 [1]  5  9  2 10  7  4  1  8  6  3


> x=1:1000
> sample(x=x,size=20)
 [1] 981 539 444 947 451 190 986 545 763 906 676 403 989 145

[15] 194 995 402 343 820 195


> x=1:10
> sample(x=x,size=5,replace=T)

[1] 9 4 2 4 4


> a=c("A","B")
> sample(x=a,size=10,replace=T)

 [1] "A" "A" "B" "B" "B" "B" "B" "A" "A" "A"




R语言笔记-sample()函数

在医学统计学或者流行病学里的现场调查、样本选择经常会提到一个词:随机抽样。随机抽样是为了保证各比较组之间均衡性的一个很重要的方法。那么今天介绍的第一个函数就是用于抽样的函数sample:> x=1:1...
  • Heidlyn
  • Heidlyn
  • 2017-02-20 15:17:17
  • 1196

R语言随机抽样sample

在模拟实际数据情况时,常常会使用随机抽样函数来从整体中挑出部分样本数据。随机抽样又分为重复随机抽样和不重复随机抽样两种。重复抽样是指:本次从整体中抽取出的数据样本,在下一次抽取时同样有机会被抽取。不重...
  • AnneQiQi
  • AnneQiQi
  • 2017-03-09 20:53:49
  • 7263

R中的sample函数

今天介绍一些运算函数,它们的使用很简单,没有什么难度,但是也会用的着。 在医学统计学或者流行病学里的现场调查、样本选择经常会提到一个词:随机抽样。随机抽样是为了保证各比较组之间均衡性的一个很重要...
  • u012108367
  • u012108367
  • 2017-04-09 20:14:18
  • 5003

训练样本和测试样本

一, 训练样本和测试样本 训练样本的目的是 数学模型的参数,经过训练之后,可以认为你的模型系统确立了下来。 建立的模型有多好,和真实事件的差距大不大,既可以认为是测试样本的目的。 一般训练样本和...
  • sjpljr
  • sjpljr
  • 2017-04-14 10:01:14
  • 4545

R语言笔记-set.seed()函数

今天查了一下R语言中set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。如果不设定种子,生成的随机数无法重现。> x x [1] 0.3897943 -1.20807...
  • Heidlyn
  • Heidlyn
  • 2017-01-21 15:17:32
  • 3201

在实验中训练样本的选择和matlab代码展示(自己在实验中的亲身的经历)

一、 训练样本的选择方式           在目前我的实验中训练样本主要有两种选择方式:(当让还有很多选择方式,比如我在人脸图像亲缘识别的实验中是将所有的数据当作训练样本,在将所有的数据作为测试样本...
  • awd1991
  • awd1991
  • 2015-09-25 16:30:34
  • 4985

基于稀疏的人脸识别

  • 2014年05月19日 20:55
  • 9KB
  • 下载

神经网络训练样本和测试样本的区别

训练样本是用来训练学习机的,测试样本是学习机要识别的对象。比如你想让一台电脑能识别茶杯,首先你要准备一个茶杯(训练样本),然后把茶杯给计算机看(数据输入),并告诉电脑说这样的东东是茶杯(期望输出),电...
  • dyf4281
  • dyf4281
  • 2014-05-11 15:52:44
  • 2262

关于R语言中set.seed()

在r中取sample时候,经常会有set.seed(某数),经常看见取值很大,其实这里无论括号里取值是多少,想要上下两次取值一样,都需要在每次取值前输入同样的set.seed(某数),才能保证两次取值...
  • Tanya_girl
  • Tanya_girl
  • 2015-12-21 22:08:49
  • 2363

关于R语言中的merge和cbind功能的用法

如上图所示merge功能实际上是执行age的求交集运算,然后再合并两个数据框,而cbind功能则是直接合并两个数据框,注意两个表的行数是要相同的...
  • baidu_38042987
  • baidu_38042987
  • 2017-08-17 03:06:43
  • 253
收藏助手
不良信息举报
您举报文章:R语言中sample()的一些用法以及随机选择出测试样本和训练样本
举报原因:
原因补充:

(最多只允许输入30个字)