青岛网站推广引流,wordpress 优酷免广告,网络系统管理大赛样题,创建全国文明城市时间XGBoost 主要结合了大量的回归树和一个小的学习率。在这种情况下#xff0c;早期添加的树是重要的#xff0c;而晚期添加的树是不重要的。
Vinayak 和 Gilad-Bachrach 提出了一种将深度神经网络社区的 dropout 技术应用于梯度提升树的新方法#xff0c;并在某些情况下报告了…XGBoost 主要结合了大量的回归树和一个小的学习率。在这种情况下早期添加的树是重要的而晚期添加的树是不重要的。
Vinayak 和 Gilad-Bachrach 提出了一种将深度神经网络社区的 dropout 技术应用于梯度提升树的新方法并在某些情况下报告了更好的结果。
以下是新的树增强器 dart 的说明。
原始论文
Rashmi Korlakai Vinayak, Ran Gilad-Bachrach。“DART: Dropouts meet Multiple Additive Regression Trees.” [arXiv]。
特性
通过删除树来解决过拟合问题。 可以阻止不重要的普通树以纠正普通错误
由于训练中引入的随机性可以期待以下一些差异 由于随机丢弃dropout会阻止使用预测缓冲区因此训练可能比 gbtree 慢 由于随机性早停Early-stop可能不稳定
工作原理 在第 m m m训练轮次中假设 k k k棵树被选中丢弃。 令 D ∑ i ∈ K F i D \sum_{i \in \mathbf{K}} F_i D∑i∈KFi为被丢弃树的叶节点分数 F m η F ~ m F_m \eta \tilde{F}_m FmηF~m为新树的叶节点分数。 目标函数如下 O b j ∑ j 1 n L ( y j , y ^ j m − 1 − D j F ~ m ) Ω ( F ~ m ) . \mathrm{Obj} \sum_{j1}^n L \left( y_j, \hat{y}_j^{m-1} - D_j \tilde{F}_m \right)\Omega \left( \tilde{F}_m \right). Objj1∑nL(yj,y^jm−1−DjF~m)Ω(F~m). D D D和 F m F_m Fm是超调因此使用缩放因子 y ^ j m ∑ i ∉ K F i a ( ∑ i ∈ K F i b F m ) . \hat{y}_j^m \sum_{i \not\in \mathbf{K}} F_i a \left( \sum_{i \in \mathbf{K}} F_i b F_m \right) . y^jmi∈K∑Fia(i∈K∑FibFm).
参数
Booster dart 继承自 gbtree booster因此支持 gbtree 的所有参数比如 eta、gamma、max_depth 等。
以下是额外的参数 sample_type采样算法的类型。 uniform默认以均匀方式选择要删除的树。weighted以权重比例选择要删除的树。 normalize_type规范化算法的类型。 tree默认新树的权重与每个被删除的树相同。 a ( ∑ i ∈ K F i 1 k F m ) a ( ∑ i ∈ K F i η k F ~ m ) ∼ a ( 1 η k ) D a k η k D D , a k k η \begin{split}a \left( \sum_{i \in \mathbf{K}} F_i \frac{1}{k} F_m \right) a \left( \sum_{i \in \mathbf{K}} F_i \frac{\eta}{k} \tilde{F}_m \right) \\ \sim a \left( 1 \frac{\eta}{k} \right) D \\ a \frac{k \eta}{k} D D , \\ \quad a \frac{k}{k \eta}\end{split} a(i∈K∑Fik1Fm)a(i∈K∑FikηF~m)∼a(1kη)DakkηDD,akηk forest新树的权重等于被删除的树的权重之和森林。 a ( ∑ i ∈ K F i F m ) a ( ∑ i ∈ K F i η F ~ m ) ∼ a ( 1 η ) D a ( 1 η ) D D , a 1 1 η . \begin{split}a \left( \sum_{i \in \mathbf{K}} F_i F_m \right) a \left( \sum_{i \in \mathbf{K}} F_i \eta \tilde{F}_m \right) \\ \sim a \left( 1 \eta \right) D \\ a (1 \eta) D D , \\ \quad a \frac{1}{1 \eta} .\end{split} a(i∈K∑FiFm)a(i∈K∑FiηF~m)∼a(1η)Da(1η)DD,a1η1. dropout_rate: 丢弃率。 范围[0.0, 1.0] skip_dropout: 跳过丢弃的概率。 如果跳过了dropout新树将以与 gbtree 相同的方式添加。范围[0.0, 1.0]
示例
import xgboost as xgb# read in data
dtrain xgb.DMatrix(./xgboost/demo/data/agaricus.txt.train?formatlibsvm)
dtest xgb.DMatrix(./xgboost/demo/data/agaricus.txt.test?formatlibsvm)# specify parameters via map
param {booster: dart,max_depth: 5, learning_rate: 0.1,objective: binary:logistic,sample_type: uniform,normalize_type: tree,rate_drop: 0.1,skip_drop: 0.5}num_round 50
bst xgb.train(param, dtrain, num_round)
preds bst.predict(dtest)参考
https://xgboost.readthedocs.io/en/latest/tutorials/dart.htmlhttps://arxiv.org/abs/1505.01866