H2O AutoML排行榜

问题描述

我刚刚开始学习使用H2O Auto ML,并且正在尝试使用二进制分类模型。

我试图了解为什么每次运行时模型的排名都会改变。

排名前5位的模型仍排在前5位,但模型会略微移至更高或更低的排名。

DRF一次排名第二,而另一次排名第三。

我可以推测出导致更改的几种原因。

  1. 种子每次都会更改算法
  2. 未分配排行榜框架
  3. RF将随机采样作为过程的一部分,导致每次生成不同的树
  4. 排行榜将不会更改,对数据/代码的其他更改将负责更改。

请帮助我更好地理解这一点。

解决方法

听起来您没有设置种子,所以应该从那里开始。为了使具有固有随机性的算法(例如XGBoost,GBM,随机森林)每次产生相同的答案,必须设置随机种子(至少)。在H2O AutoML中,只有一个seed参数(将其传递给所有单独的算法),如果每次将其设置为相同的值,则 most 个模型将是重复运行相同。默认情况下,AutoML还将使用随机折叠进行交叉验证,因此这也保证了每次使用相同的折叠。

有几点警告-即使您设置了种子,H2O深度学习也无法重现(默认情况下),因此这些模型将始终更改。由于“所有模型”堆叠集成除了使用其他模型之外,还使用深度学习模型,因此最终的合奏也将不可重现。

最后,您应该使用max_models而不是max_runtime_secs来控制AutoML的运行时间-否则,您可能会在排行榜上(以及堆叠的所有模型中)获得不同数量的模型合奏)。