如何从插入包拆分数据创建createDataPartition函数?

时间:2016-11-20 21:42:33

标签: r subset r-caret data-partitioning

来自文档:

  

对于自举样本,使用简单随机抽样。

     

对于其他数据分割,随机抽样在y的水平内完成   当y是试图平衡其中的类分布的因素时   分裂。

     

对于数字y,根据百分位数将样本拆分为组   并在这些小组内进行抽样。

     

对于createDataPartition,百分位数通过组设置   参数。

我不明白为什么需要这种“平衡”的东西。我认为我从表面上理解它,但任何额外的见解都会非常有用。

1 个答案:

答案 0 :(得分:9)

这意味着,如果您有一个包含10000行的数据集ds

set.seed(42)
ds <- data.frame(values = runif(10000))

2个“等级”,分配不均(9000对1000)

ds$class <- c(rep(1, 9000), rep(2, 1000))
ds$class <- as.factor(ds$class)
table(ds$class)
#    1    2 
# 9000 1000 

你可以创建一个样本,试图保持因子类的比例/“平衡”。

dpart <- createDataPartition(ds$class, p = 0.1, list = F)
dsDP <- ds[dpart, ]
table(dsDP$class)
#   1   2 
# 900 100