按层生长
按层生长是决策树构建过程中的一种策略,特别是在GDBT
框架下较为常见。这种策略是指在构建决策树时按照层次顺序逐层选择最佳的分割点,确保每一层的所有节点在同一时间被完全扩展
按层生长策略详解:
-
初始化:
- 决策树的构建从根节点开始,根节点包含了训练数据集中的所有样本。
-
逐层扩展:
- 当构建树的某一层时,算法会同时考虑这一层所有节点的分裂。
- 每个节点会计算所有可能的特征分割点,寻找能够最大化增益的特征和阈值。
- 这些增益的计算是基于损失函数的导数,如梯度和二阶导数,以评估分割前后目标函数的变化。
-
分裂所有节点:
- 一旦找到了每个节点的最佳分割,这一层的所有节点都会被同时分裂。
- 分裂的结果是生成下一层的新节点,这些新节点将成为下一次迭代的目标。
-
重复直至终止条件:
- 上述过程会一直重复,直到达到预先设定的终止条件,比如树的最大深度、节点中的最小样本数量、增益阈值等。
- 终止条件的设置是为了避免过拟合,并控制树的复杂度。
按层生长的优势:
- 方便并行化计算
- 由于考虑到所有节点的分裂,因此,理论上有利于找到全局最优的树结构
按层生长的劣势:
- 由于某些增益较小的节点分割也会被考虑在内,因此可能会计算一些原本无需计算分割的节点,计算成本较高
按叶生长
该策略每次从所有叶子(注意,不一定是同一层的叶子)节点中,寻找分裂增益最大的一个叶子进行分裂,如此循环
按叶生长的优势:
- 在分裂次数相同的情况下,按叶生长可以降低更多的误差,得到更好的精度
- 不会像按层生长那样浪费算力
按叶生长的劣势:
- 容易长出较深的决策树,产生过拟合风险