我正在阅读 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数据分区吗 或功能分区
- 或者可以将其拆分到每个数据分区上吗?
最佳答案
这里提到的“分区”与 Spark 数据分区无关。这是基于所选特征对树节点上的数据进行分区,属于算法中的“数据分区”。 如果您检查实际的实现,它将对所有需要拆分的节点进行排队,并根据可用内存(配置)选择其中的一堆。这个想法是,如果一堆节点及其统计信息,则可以减少数据传递功能可以通过 1 pass 完成。然后,对于每个节点,它采用特征子集(配置)并计算每个特征的统计信息;这给出了一组可能的分割。然后是驱动程序节点(此处的节点是 Spark 驱动程序机器;术语可能会令人困惑:))仅发送最佳可能的分割并增强树。rdd 中的每个数据或行都表示为 BaggedTreePoint 并存储有关其当前属于哪个节点的信息。 浏览源代码需要一点时间;但也许是值得的。
关于apache-spark - 决策树的 Spark 数据分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104131/