R' h2o.stack是否有等效的python?

时间:2017-07-12 15:26:25

标签: python r h2o ensemble-learning

我正在与堆积的学习者一起工作。根据{{​​3}}的文档,python实现允许您轻松构建集合模型。然而,这仅限于构建具有相同底层训练数据的基础分类器。我有基于时间的功能,其最小日期因数据源而异。每个数据样本都是一个时间点。为了充分利用尽可能多的数据,我将功能分为两组(取决于相关性和最小日期)并训练两个单独的模型。我想结合这些模型,但H2OStackedEnsembleEstimator要求功能相同。

根据H2OStackedEnsembleEstimator关于R的堆叠集合实现,可以选择仅执行元学习步骤,该步骤应仅需要每个基本模型的k折交叉验证预测和真实目标值。

如果遇到任何人的想法......对于我的特殊问题,我意识到我将遇到元学习步骤的问题,这个问题在最短的日期不匹配,我有想法绕过这个问题。

1 个答案:

答案 0 :(得分:2)

对于Super Learner算法(堆叠使得您使用来自基础学习者的交叉验证的预测值作为元学习者的训练数据),唯一的要求是基础学习者必须在相同的行上进行训练 - 列可以不同。有一种堆叠的变体,我们称之为"Holdout Stacking",在那里你可以在一个数据集上对基础模型进行评分,并使用这些预测来训练元数据。在这种情况下,您可以为基础学习者使用完全不同的训练框架。

H2O中的当前Stacked Ensembles实施限制了整个培训框架(行和列)对于基础学习者必须相同,但我们将来will relax that requirement(因为它&#39} ;不是真的需要)。

在我们将Stacked Ensembles移植到H2O的Java后端之前,我只使用 h2o Python模块在Python中编写了一个简单的参考实现。目前,您可以非常轻松地修改该代码,以获得您正在寻找的Stacked Ensemble类型。它在一个要点here中。