代码之家  ›  专栏  ›  技术社区  ›  Andrew Bannerman

用于在看不见的数据上测试模型的包

r
  •  0
  • Andrew Bannerman  · 技术社区  · 7 年前

    我想知道有什么软件包可以分割我的数据。

    我更愿意在2/3的数据上优化我的模型。

    此外,这听起来可能是一个愚蠢的问题……但为了在最后1/3/3的数据上向前运行优化模型,有没有办法做到这一点?否则我会再次进行回溯测试,对吗?想法是在最后1/3的数据上对其进行正向测试,就像看到真实的实时数据一样……如果我说得通的话。

    有没有一个R包可以做到这一点?

    **评估答案。

    1. 在最后1/3的数据上测试这些参数。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Justin    7 年前

    获得数据后,创建一个训练索引。 然后通过再次对数据子集,但减去列车索引来创建测试集。

    data <- data.frame(x=runif(10000), y=runif(10000))
    
    train_index <- 1:(NROW(data)*0.666)
    
    train_set <- data[train_index, ]
    
    test_set <- data[-train_index, ]
    

    此外 caret 包装很受欢迎,有一个 train

    如果使用时间序列,则 forecast CVar tsCV ,虽然他们不会按您要求的方式分割数据,但他们会滚动训练您的数据,这与某些时间序列模型更相关。

    祝你好运

        2
  •  1
  •   Billy Jackson    7 年前

    有几个软件包可以帮助实现这一点。这个 caTools sample.split 专门用于将数据集拆分为测试集和训练集。

    sample.split documentation

    将数据集中的一列作为第一个参数(通常是响应变量)传递,并在该变量中的值之间按比例分割数据集。如果你有一个可能只有5%的时间出现某个值的响应变量,这很有帮助,你希望你的训练集和测试集在每个值中都有类似的表示。它可以像这样使用:

    split = sample.split(wikiWords$Vandal, SplitRatio = 2/3)
    wikitrain = subset(wikiWords, split == TRUE)
    wikitest = subset(wikiWords, split == FALSE)