h2o 中的可自定义交叉验证(取决于训练集的功能)

customizable cross-validation in h2o (features that depend on the training set)

我有一个模型,其中一些输入特征是根据训练数据集计算的(例如,某个值的平均值或中值)。我正在尝试对该模型执行 n 折交叉验证,但这意味着这些特征的值会有所不同,具体取决于为每个折 training/validation 选择的样本。 h2o 中是否有一种方法(我在 R 中使用它)也许可以在确定训练集后传递一个计算这些特征的函数?

这似乎是一个非常直观的功能,但我还没有找到任何关于开箱即用的类似功能的文档。它存在吗?如果是这样,有人可以给我指点资源吗?

在 H2O 中使用 built-in cross-validation 时无法执行此操作。如果 H2O 是用纯 R 或 Python 编写的,那么很容易扩展它以允许用户传入一个函数以在 cross-validation 循环中创建自定义功能,但是 H2O 的核心是用 Java 编写,因此自动将 R 或 Python 中的任意 user-defined 函数首先转换为 REST 调用,然后再转换为 Java 并非易事。

相反,您需要做的是自己编写一个循环来完成 cross-validation 并计算循环内的特征。

听起来您可能正在做目标编码(或类似的事情),如果是这样的话,您会对此感兴趣 PR 在 H2O 中添加目标编码。在讨论中,我们讨论了您遇到的相同问题。