我正在阅读spark mllib文档,并且在决策树文档中说-
Each partition is chosen greedily by selecting the best split from a set
of possible splits, in order to maximize the information gain at a tree node.
我无法理解-
这里对“分区”的引用与spark数据分区无关。这是基于所选功能在树节点上对数据的分区,与算法中的“数据分区”有关。如果检查实际的实现,它将所有需要拆分的节点排入队列,并根据可用内存(config)选择一堆节点。其想法是,如果一堆节点及其节点的统计信息可以减少传递数据的次数功能可以通过1遍完成。然后对于每个节点,它使用features(config)的子集并计算每个功能的统计信息;这给出了一组可能的拆分。然后是驱动程序节点(这里的节点是spark驱动程序机器;术语可能会令人困惑:))仅发送可能的最佳拆分并增强树。rdd中的每个基准或一行均表示为BaggedTreePoint,并存储有关其当前所属节点的信息。遍历源代码将花费一点时间;但是也许值得。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句