我刚刚开始学习使用H2O Auto ML,我正在尝试一个二进制分类模型。
我试图理解为什么模型的排名会随着每次跑步而变化。
排名前五的车型仍保持在前五位,但车型略有上升或下降。
DRF一度排名第二,另一次排名第三。
我可以推测,造成变化的原因有几个。
- 算法的种子每次都会更改
- 没有分配引线板框架
- RF将随机采样作为过程的一部分,每次生成不同的树
- 领导委员会不会更改,数据/代码的其他更改负责更改
你能帮我更好地理解这一点吗。
听起来你没有设置种子,所以你应该从那里开始。为了使具有固有随机性的算法(例如XGBoost、GBM、随机森林(每次都能产生相同的答案,必须设置一个随机种子(至少(。在H2O AutoML中,有一个单独的seed
参数(通过管道传递到所有单独的算法(,如果每次都将其设置为相同的值,则大多数模型在重复运行时都是相同的。默认情况下,AutoML还会对随机折叠进行交叉验证,因此这也保证了每次使用相同的折叠。
有几点需要注意——即使你设定了种子,H2O深度学习也是不可复制的(默认情况下(,所以这些模型总是会改变。由于";所有型号";Stacked Ensemble除了使用一堆其他模型外,还使用了深度学习模型,最终的Ensemble也将是不可复制的。
最后,您应该使用max_models
而不是max_runtime_secs
来控制AutoML应该运行多长时间——否则,在随后的运行中,您可能会在排行榜上(以及所有模型堆叠集合中(获得不同数量的模型。