我正在尝试在具有120k行和518列的数据集上构建随机林。 我有两个问题: 我想看看建造森林的进展和日志。在randomForest函数中是否弃用了详细选项? 2.如何提高速度?现在,用1000棵树建造一个随机森林需要6个多小时。
使用以下设置初始化H2O群集:
hadoop jar h2odriver.jar -Dmapreduce.job.queuename = devclinical -output temp3p -nodes 20 -nthreads -1 -mapperXmx 32g
h2o.init(ip = h2o_ip,port = h2o_port,startH2O = FALSE, nthreads = -1,max_mem_size =“64G”,min_mem_size =“4G”)
答案 0 :(得分:0)
根据您的网络拥塞和您的hadoop节点的繁忙程度,它可以用更少的节点更快地完成。例如,如果您请求的20个节点中有1个完全受到某些其他作业的攻击,那么该节点可能会滞后,并且该节点的工作不会重新平衡到其他节点。
了解正在发生的事情的好方法是在浏览器中连接到H2O Flow并运行WaterMeter。这将显示群集中的CPU活动。
您可以在开始RF之前和开始射频之后比较活动。
如果甚至在你开始射频之前,节点非常繁忙,那么你可能会运气不好,只需要等待。如果即使在你启动射频后节点也根本不忙,那么网络通信可能太高,节点会更少。
您还希望查看H2O日志,了解数据集的解析方式,数据类型以及构建单个树的速度。如果您的响应列是分类的并且您正在执行多项式,则每棵树都是N树,其中N是响应列中的级别数。
[不幸的是,"它太慢"投诉过于笼统,不能说太多。 ]
答案 1 :(得分:0)
在一个只有120k x 518列的数据集上训练随机森林的时间太长了。正如汤姆上面所说的那样,它可能与你的Hadoop集群上的拥塞有关,可能还有这个集群对于这个任务来说太大了。您应该能够在单个机器上训练大小的数据集(不需要多节点集群)。
如果可能,请尝试在笔记本电脑上训练模型以进行比较。如果您无法改善Hadoop环境,那么这可能是培训的更好选择。
关于一个详细选项的其他问题 - 我不记得在H2O的随机森林中有这个选项。您可以在H2O Flow(GUI)中构建模型的进度。当您单击模型进行查看时,会出现一个“刷新”按钮,您可以通过它来检查模型在列车上的进度。