Leaderboard in H2O AutoML

我刚开始学习使用H2O AutoML,并且正在尝试一个二分类模型。

我想了解为什么每次运行时模型的排名都会发生变化。

前5名的模型始终保持在前5名,但模型的排名会略有上升或下降。

例如,DRF曾经排名第二,而另一次排名第三。

我可以推测有几个原因导致这种变化。

  1. 每次算法的种子都会改变
  2. 没有指定排行榜框架
  3. 随机森林作为过程的一部分涉及随机抽样,导致每次构建的树不同
  4. 排行榜不会改变,数据/代码的其他变化导致了排名的变化。

您能帮助我更好地理解这一点吗?


回答:

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

有一些例外情况——即使您设置了种子,H2O深度学习(默认情况下)也是不可复现的,因此这些模型总是会发生变化。由于“所有模型”堆叠集成使用了深度学习模型以及许多其他模型,最终的集成也将是不可复现的。

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注