【问题标题】:How does createDataPartition function from caret package split data?createDataPartition 函数如何从 caret 包拆分数据?
【发布时间】:2016-11-20 21:42:32
【问题描述】:

来自文档:

对于引导样本,使用简单随机抽样。

对于其他数据拆分,随机抽样是在 y 的层级内完成的 当 y 是试图平衡内部类别分布的一个因素时 分裂。

对于数字 y,样本根据百分位数分成几组部分 并在这些子组内进行抽样。

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

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

【问题讨论】:

    标签: r subset r-caret data-partitioning


    【解决方案1】:

    这意味着,如果您有一个包含 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 
    

    您可以创建一个示例,尝试保持factor 类的比率/“平衡”。

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

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多