2

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

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

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

4

1 回答 1

2

对于超级学习器算法(堆叠,以便您使用来自基础学习器的交叉验证预测值作为金属学习器的训练数据),唯一的要求是基础学习器必须在相同的行上进行训练——列可以是不同的。堆叠有一种变体,我们称之为“Holdout Stacking”,您可以在其中对保持数据集上的基本模型进行评分,然后使用这些预测来训练金属学习者。在这种情况下,您可以为基础学习者使用完全不同的训练框架。

当前H2O 中的Stacked Ensembles实现有一个限制,即整个训练框架(行和列)对于基础学习器必须相同,但我们将来会放宽该要求(因为它并不是真正需要的)。

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

于 2017-07-12T18:48:54.337 回答