决策树的火花数据分区

spark data partitioning for decision tree

我正在阅读 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.

Here is the link .

我看不懂-

  1. 我们说的分区,是spark数据分区吗 或特征分区
  2. 或者可以在每个数据分区上拆分?

此处对"partition"的引用与spark数据无关partition.This是根据所选特征在树节点处对数据进行分区,属于"data partitioning"就像在算法中一样。 如果您检查实际实现,它会将所有需要拆分的节点排入队列,并根据可用内存(配置)选择其中的一组节点。这个想法是,如果一组节点及其节点的统计信息可以减少传递的数据功能可以通过 1 遍完成。然后对于每个节点,它采用功能的子集(配置)并计算每个功能的统计信息;这给出了一组可能的 splits.Then 驱动程序节点(这里的节点是 spark 驱动程序机器;术语可能会造成混淆: )) 只发送最好的拆分并增加 tree.Each 数据,或者你的 rdd 中的一行表示为 BaggedTreePoint 并存储关于它当前属于哪个节点的信息。 浏览源代码需要一点时间;但也许值得。