R H20-具有分层抽样和非i.d.的交叉验证行数

时间:2019-01-02 11:47:03

标签: r cross-validation h2o

我正在使用H2O分析数据集,但是我不确定如何正确地对数据集执行交叉验证。我有一个不平衡的数据集,因此我想执行分层交叉验证(如果使用输出变量来平衡每个分区上的组)。

但是,最重要的是,我还有一个问题,我的许多行都是重复的(一种实现权重而实际上没有权重的方法)。独立于此问题的源头,我之前已经看到过,在某些情况下,如果必须将某些行保持在一起,则可以进行交叉验证。这似乎是fold_column的用法。但是,不可能同时做这两者吗?

如果没有H2O解决方案,该如何计算先验倍数并将其用于H2O?

1 个答案:

答案 0 :(得分:1)

基于H2O-3 docs,此操作无法完成:

  

请注意,所有三个选项仅适用于i.i.d的数据集。如果数据集需要自定义分组以执行有意义的交叉验证,则应创建并提供fold_column。

一个快速的想法是使用weights_column而不是复制行。然后balance_classesweights_column都可以作为参数 GBM,DRF,深度学习,GLM,朴素贝叶斯和AutoML。

否则,我建议遵循在R或H2O中对数据执行的工作流程,以实现折页分配和折页之间重复项的一致性:

  1. 获取原始数据集(数据中尚未重复)
  2. 根据结果字段将其分为2组(不平衡的一组):一组为正,一组为负(如果是多项式,则有尽可能多的组)
  3. 通过在两个集合中分别分配新的foldId列,将每个集合分成N个折叠:这实现了分层的折叠
  4. 组合(rbind)一起退回
  5. 应用实现权重的行复制过程(该过程将立即自动保留您的折叠分配)。