在进行交叉验证之前进行预处理,而不会泄漏

时间:2018-08-23 11:51:40

标签: cross-validation h2o feature-extraction

我想做一些带有交叉验证的预处理(缩放,特征工程,例如目标编码)。我知道,最好的方法和理论上正确的方法是针对交叉验证的每个训练/测试步骤分别对数据进行预处理。

但是,我使用的是H2O,除非我没有记错,否则它不允许我创建预处理管道。

h2o documentation page on target encoding提供了一种变通方法,可以避免训练折痕泄漏到验证折痕:“目标平均值是根据折折数据计算出来的,以防止过度拟合。”因此,对给定折页进行的预处理会从此折页中排除数据。

在我看来,这避免了从训练样本到测试样本的泄漏,但事实并非如此。

我可以安全地使用此变通方法(通过#observations >> #features提供),还是应该寻找另一个允许预处理管道的框架(或手动进行交叉验证)?

1 个答案:

答案 0 :(得分:0)

为防止过度拟合,可以将hold_out参数的训练集设置为“ KFOLD”,将测试集的参数设置为“ None”。

有关更多详细信息,我建议重点关注“目标编码”文档的Holdout Type部分。