Apache Spark 随机森林性能缓慢

Posted

技术标签:

【中文标题】Apache Spark 随机森林性能缓慢【英文标题】:Apache Spark Random Forest slow performance 【发布时间】:2016-03-25 06:00:03 【问题描述】:

如果能获得一些关于调整 Apache Spark 以进行随机森林分类的​​技巧会很好。 目前,我们的模型如下所示:

featureSubsetStrategy 全部 杂质基尼 maxBins 32 最大深度 11 numberOfClasses 2 numberOfTrees 100

我们将 Spark 1.5.1 作为独立集群运行。

1 个主节点和 2 个工作节点。 每个具有 4 个核心的节点上的 RAM 量为 32GB。 分类耗时 440 毫秒。

当我们将树的数量增加到 500 时,已经需要 8 秒。 我们试图减少深度,但错误率更高。我们有大约 246 个属性。

可能我们做错了什么。有什么想法可以提高性能吗?

【问题讨论】:

我不熟悉 Spark,但也许这是一些与内存相关的问题(例如交换)?因为您的运行时间似乎非线性增加。 只是预测慢,还是训练慢?您只是想预测一个还是多个示例? 预测很慢,这是主要问题。在训练之前也很慢,但在我们删除分类特征后速度提高了。 这个问题你解决了吗? 【参考方案1】:

增加决策树的数量肯定会增加预测时间,因为问题实例必须遍历所有树。但是减少它对预测准确性没有好处。您必须更改此参数(决策树的数量)并找到最佳值。这就是为什么它被称为超参数。超参数高度依赖于数据和属性的性质。您可能还需要一一改变其他超参数,并实现全局最优。

另外,当您说预测时间时,您是否也包括加载模型的时间!如果是这样,我想模型时间不应该被视为预测时间。这只是加载模型和准备应用程序以进行预测的开销。

【讨论】:

以上是关于Apache Spark 随机森林性能缓慢的主要内容,如果未能解决你的问题,请参考以下文章

GPU上的随机森林:比Apache Spark快2000倍

为啥与 MSE 相比,使用 MAE 标准训练随机森林回归器如此缓慢?

带有随机森林的 Spark 流程数据框

spark 随机森林算法案例实战

Spark Random Forest classifier 随机森林分类

Spark 随机森林交叉验证错误