根据功能描述:
h2o.stack:此功能使用用户指定的现有H2O基本模型列表创建“超级学习者”(堆叠)合奏。
h2o.ensemble:此功能使用用户指定的H2O基础学习算法创建“超级学习者”(堆叠)整体。
答案 0 :(得分:7)
它们是构建整体的两种不同方式。它们具有不同的接口,但它们最终会产生完全相同类型的对象。
h2o.stack()
函数将已经训练过的(并且经过交叉验证的)H2O模型列表作为输入,因此它需要做的就是元学习(组合器)步骤,这非常快。如果您想使用H2O模型网格或H2O模型网格集合作为基础学习者,这将非常有用。唯一需要注意的是,所有基础学习者必须使用相同的交叉验证折叠。如果您在所有基本学习者(或网格)中使用fold_assignment = "Modulo"
来确保相同的折叠。h2o.ensemble()
函数允许用户在整体中指定他们想要的基本模型,然后进行基本模型的所有训练和交叉验证,然后将元学习(组合器)步骤作为好。这需要更长的时间,因为它必须训练所有的基础模型。从最新的稳定版本(H2O 3.10.3。*)开始,现在可以在H2O(R,Python,Java,Scala)中本地使用堆叠作为" Stacked Ensemble"方法。关于here的更多信息。但是,h2oEnsemble R包(h2o.ensemble()
和h2o.stack()
函数所在的位置)也将继续受到支持。