模型融合

2018年06月30日

GBDT(梯度提升决策树):

gbdt通过经验风险极小化来确定下一个弱分类器的参数。具体到损失函数本身的选择,如果选择平方损失函数,差值就是所说的残差
让损失函数沿着梯度方向下降,就是gbdt的gb的核心,利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值去拟合一个回归树。 gbdt每轮迭代的时候,都去拟合损失函数在当前模型下的负梯度。
每轮训练的时候都能够让损失函数尽可能快的减小,尽快的收敛达到局部最优解或者全局最优解 gbdt的弱分类器默认选择的是CART TREE,其实也可以选择其他弱分类器,选择的前提是低方差和高偏差。框架服从boosting框架即可。

Boosting的思想:
给定初始训练数据,由此训练出一个基学习器;  
根据基学习器的表现对样本进行调整,在之前学习器做错的样本上投入更多关注;  
用调整后的样本,训练下一个基学习器;  
重复上述过程T次,将T个学习器加权结合    

注:每次训练单个弱学习器时,都将上一次分错的数据权重提高一点再进行当前单个弱学习器的学习,训练出的单个弱学习器就约会在意那些容易分错 (权重高)的点,当执行M次后,通过加权求和的方式组合成一个最终的学习器。

同为boosting方法,GBDT与Adaboost的区别和联系如下:
adaboost表示为boosting的前向分布算法(Forward stagewise additive modeling)的一个特例。
Adaboost是通过提升错分数据点的权重来定位模型的不足,而Gradient Boosting是通过算梯度来定位模型的不足。

GBDT与Xgboost的关系:

1.Xgboost是GB算法的高效实现,xgboost的基学习器除了可以是CART(gbtree)也可是是线性分类器。
2.xgboost在目标函数中显示的加上了正则化项
3.GB 中使用 Loss Function 对 f(x) 的一阶导数计算出伪残差用于学习生成fm,xgboost 不仅使用到了一阶导数,还使用二阶导数
4.CART 回归树中寻找最佳分割点的衡量标准是最小化均方差,xgboost 寻找分割点的标准是最大化,lamda,gama 与正则化项相关

CNN的演进
CNN的演进过程
ai
数据竞赛的算法
AdaBoost算法手稿与模型
extra


期待您的分享与讨论: