win*_*und 5 parallel-processing r machine-learning h2o
我对机器学习领域比较陌生,如果我的一些问题确实很基本,请原谅。
目前情况:总体目标是尝试改进在超级计算机集群上运行的 r 中的 h2o 包的一些代码。然而,由于数据量太大,单个节点用 h2o 确实需要一天多的时间,因此,我们决定使用多个节点来运行模型。我想出了一个主意:
(1) 分布每个节点构建(nTree/num_node)棵树并保存到模型中;
(2)在集群的每个节点上运行(nTree/num_node)个森林中的树;
(3)将树木重新合并并改造原始森林,并取测量结果的平均值。
后来我意识到这可能有风险。但我找不到实际的支持或反对声明,因为我不是专注于机器学习的程序员。
问题:
我可以在这里展示的实际涉及数字的例子是:
我有一个包含 80k 行和 2k 列的随机森林任务,并且希望树的数量为 64 棵。我所做的是将 16 棵树放在每个节点上,与整个数据集一起运行,并且四个节点中的每一个都提出一个 RF 模型。我现在正在尝试将每个模型中的树合并到这个大型 RF 模型中,并对测量值进行平均(来自这四个模型中的每一个)。
无需合并模型。与增强方法不同,随机森林中的每棵树都是独立生长的(只是在每个节点上启动 RF 之前不要设置相同的种子!)。
您基本上正在做随机森林本身所做的事情,即生长 X 个独立的树,然后对投票进行平均。许多软件包提供了一个选项来指定核心或线程的数量,以便利用 RF 的这一功能。
在你的例子中,由于每个节点有相同数量的树,你将得到 4 个“模型”,但这些实际上只是 16 棵树的集合。要使用它,我只需将 4 个模型分开,当您需要预测时,对 4 个模型中每个模型的预测进行平均。假设您要多次执行此操作,您可以编写一个小型包装函数来使用 4 个模型进行预测并对输出求平均值。
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |