我尝试使用AutoML进行100小时的二进制分类任务。它似乎只是构建了大量的GBM模型而没有进入其他类型。 (到目前为止已建成40)
有没有办法设置GBM模型的最大数量?
AutoML构建模型的顺序(GBM排在第一位)。 GBM模型构建过程的长度取决于您为max_runtime_secs
设置的时间。如果你计划运行它100个小时,那么其中很大一部分将用于GBM超级参数空间,所以我对你的前40个型号是GBM并不感到惊讶。换句话说,这是预期的行为。
如果你想要训练模型中的多样性,那么你可以为一个较小的max_runtime_secs
(比如说2小时)运行一个AutoML作业,然后在同一个项目上再次运行AutoML进程(每次2小时再运行49次 - - 或一些加起来长达100小时的组合)。如果在启动AutoML作业时使用相同的project_name
,则应将全新的模型集(GBM,RF,DNN,GLM)添加到现有的AutoML排行榜中。
正如Erin所说,如果你使用相同的AutoML
多次运行project_name
,结果将累积到单个leaderboard
中,超参数搜索将累积到相同的grid
对象中。但是,AutoML
仍将运行相同的模型构建序列,因此它将在进入DL
模型构建之前再次进行GBM超参数搜索。
感觉您的GBM超参数搜索没有收敛,因为stopping_tolerance
对于您的数据集来说太小了。绑定的预发布版本中存在一个错误,它将stops_tolerance强制为0.001而不是让AutoML
将其设置得更高,如果它计算出该容差对于小数据集而言太紧。您使用的是哪种版本的H2O-3?
关于停止标准的一点:
像stopping_criteria
,max_models
和stopping_rounds
这样的stopping_tolerance
适用于整个AutoML
过程以及超参数搜索和单个模型构建。在运行开始时,max_runtime_secs
用于计算整个过程的结束时间,然后在每个阶段计算剩余的总时间,并传递给模型构建或超参数搜索子任务。
你发布的Run Time 558:10:56.131
真的很奇怪。我没有在AutoML.java
代码中看到那种输出,也没有在Python或R绑定中看到那种输出。看起来第一眼看来这是来自H2O之外。 。 。你对这次运行的真实时间有什么看法吗?
如果您执行以下操作,我们应该能够弄清楚发生了什么:
seed
参数,以便我们获得可重复的结果。