六、 DART booster
在
GBDT
中,越早期加入的子树越重要;越后期加入的子树越不重要。DART booster
原理:为了缓解过拟合,采用dropout
技术,随机丢弃一些树。由于引入了随机性,因此
dart
和gbtree
有以下的不同:- 训练速度更慢
- 早停不稳定
DART booster
也是使用与提升树相同的前向分步算法第 步,假设随机丢弃 棵,被丢弃的树的下标为集合 。
令 ,第 棵树为 。则目标函数为: 。
由于
dropout
在设定目标函数时引入了随机丢弃,因此如果直接引入 ,则会引起超调。因此引入缩放因子,这称作为归一化: 。其中 为新的子树与丢弃的子树的权重之比, 为修正因子。
令 。采用归一化的原因是: 试图缩小 到目标之间的
gap
; 而 也会试图缩小 到目标之间的gap
。如果同时引入随机丢弃的子树集合 ,以及新的子树 ,则会引起超调。
有两种归一化策略:
'tree'
: 新加入的子树具有和每个丢弃的子树一样的权重,假设都是都是 。此时 ,则有:
要想缓解超调,则应该使得 ,则有: 。
'forest'
:新加入的子树的权重等于丢弃的子树的权重之和。假设被丢弃的子树权重都是 , 则此时 ,则有:要想缓解超调,则应该使得 ,则有: 。