统计学概念

抽样是最基础的统计学概念,sample() 可以实现简单的随机抽样。

选项参数按字面理解,设置取样数和是否放回。

x <- 1:10 
sample(x, size = 5, replace = TRUE)

随机数种子

随机数种子是用于初始化伪随机数生成器的数值。在R中,通过 set.seed() 函数设置种子后,后续的随机抽样(如 sample())会产生可重复的相同结果。这在需要复现随机过程(如数据分析、模拟实验)时非常有用。

一个随机数种子,对应一个随机抽样结果。

set.seed(123)
sample(x, size = 5)

二维数据抽样

二维数据的抽样需要对行列分别处理,本质依旧是索引

以随机抽选为例:

  1. 计算行数
  2. 随机抽样得到行索引
  3. 根据抽样结果索引
y <- nrow(mtcars) #获取数列
mtcars[sample(1:y, size = 5), ] #抽样,索引

实例:将二维数据利用随机抽样进行拆分

使用随机抽样将 iris 数据集拆分为训练集(70%)和验证集(30%)。

iris_train <- iris[sample(1:nrow(iris), size = nrow(iris)*0.7) , ]
filt <- as.integer(row.names(iris_train))
iris_validate <- iris[- filt, ]

注意其中涉及到的:

  • 随机抽样
  • 数据类型转换(字符形式的行名转换为可以进行索引的整型向量)
  • 向量的负索引