是否有在Hadoop Mapreduce上实现决策树算法



我正在寻找Hadoop Mapreduce上的决策树算法的实现。准备好了吗?我看到 Mahout 只有决策林,是否可以将决策树与决策林一起使用?有什么相似之处/不同之处?

分布式决策树最常见的方式可能是森林。因为通过计算独立树进行分发是微不足道的,而以分布式方式有效地构建单个树则不是微不足道的?

随机森林当然并行化得很好,因为每棵树都是建立在(希望)训练数据的随机、独立子集上。

但是,Hadoop已经决定了每个节点上有哪些数据(以及有多少数据)。 根据源数据,在分发到节点之前预先随机化可能不切实际。 此外,每个节点上的观测次数不再是RF算法的参数,它由Hadoop配置控制数据分布方式和节点上数据冗余程度。 样本偏差很容易蔓延到每棵树(专家)模型中,而无需特别小心。

不过,跨多个Hadoop节点并行化单个树(CART)应该是可能的,因为在CART中二进制递归分区所需的核心计算,例如计算平均值(总和除以计数),误差函数(方差,基尼等)应该可以写在mapreduce中。这并非易事,因为节点需要非常健谈才能正常工作——发送索引,对原始数据样本的子节点进行分区,然后在子节点上递归。 我认为这可能适用于真正庞大的数据集,但对于那些已经可以"适合"单个工作记忆的数据集,它会慢得多。

Revolution Analytics最近确实发布了他们的版本或R在Hadoop集群上植入了决定树。 我没有尝试过,但看看它在各种大型数据集上的表现会很有趣。

这是链接:革命分析为预测分析带来大数据决策树和新的Hadoop支持

最新更新