我正在寻找Hadoop Mapreduce上的决策树算法的实现。 有没有准备好的实施?我看到Mahout只有决策林,是否可以将决策树与决策林一起使用?相似/差异是什么?
答案 0 :(得分:0)
分布式决策树的最常见方式可能是森林。因为通过计算独立的树来分配是微不足道的,而在分布式的方式中有效地构建单个树是非常重要的呢?
答案 1 :(得分:0)
随机森林确实很好地并行化,因为每棵树都是建立在一个(希望)随机的,独立的训练数据子集上。
但是,Hadoop已经决定了每个节点上的数据(以及多少数据)。根据源数据,在分发到节点之前预先随机化可能是不切实际的。此外,每个节点上的观察数量不再是RF算法的参数,它由Hadoop配置控制,以了解数据的分布方式和节点上的数据冗余程度。如果没有特别小心,样本偏差很容易蔓延到每个树(专家)模型中。
要在多个hadoop节点上并行化单个树(CART)应该是可能的,因为CART中的二进制递归分区需要核心计算,例如计算方法(总和除以计数),误差函数(方差,gini)等)应该可以写入map reduce。它不会是微不足道的,因为节点需要非常繁琐才能工作 - 发送索引来分割原始数据样本的子节点,然后在子节点上递归。我认为这可以用于真正庞大的数据集,但对于那些已经“适合”单个工作站内存的数据集,它会慢得多。
革命分析最近发布了他们的版本或R已经在Hadoop集群上实现了decsion树。我没有尝试过,但看看它在各种大型数据集上的表现会很有趣。
这是链接:Revolution Analytics Brings Big Data Decision Trees and New Hadoop Support to Predictive Analytics