2017-07-12 100 views
2

我正在学习堆叠式学习者。根据H2OStackedEnsembleEstimator的文档h2o的python实现允许您轻松构建集成模型。但是,这仅限于构建具有相同基础培训数据的基本分类器。我有基于时间的功能,其最短日期取决于数据源。每个数据样本都是一个时间点。为了充分利用尽可能多的数据,我将这些功能分成两组(取决于相关性和最短日期)并训练两个独立的模型。我想结合这些模型,但H2OStackedEnsembleEstimator要求功能相同。R的h2o.stack是否有python等价物?

根据this post关于R的堆叠合奏实施有一个选项,以仅执行步骤元学习应该只需要为每个基本模型和真实目标值的k折交叉验证predicitons。

万一它跨越了任何人的想法......对于我的特殊问题,我意识到我将遇到一个与最小日期不匹配的元学习步骤的问题,并且我有想法来绕过这个问题。

回答

2

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

在H2O中实现的Stacked Ensembles有一个限制条件,整个训练框架(行和列)对于基础学习者必须是相同的,但是我们在将来会使用will relax that requirement(因为它不是真正需要的)。

在我们将Stacked Ensembles移动到H2O的Java后端之前,我只使用Python模块编写了一个简单的Python参考实现。目前,您可能很容易修改该代码,以获得您正在寻找的堆叠合奏类型。它的要点是here

+0

我会试试看。谢谢! – joceratops

相关问题