1.解释一下什么是boosting模型,以及boosting模型有哪几种
- 常见的boosting模型有adaboost, gbdt, xgboost
- boosting算法是由多个树模型通过叠加的方式来学习特征和标签之间的规律
- 虽然有很多的boosting算法,其核心思想是使用新的模型去拟合之前所有叠加起来的模型所没有捕捉到的规律,从而一点点的学习特征和标签的规律
2.adaboost分类模型和boosting分类模型的异同是什么
相同点:
- 两者都是boosting模型
- 两者都是使用新的模型去学习之前所有模型所没捕捉到的规律
不同点:
- 两者的损失函数不一样,adaboost分类用的损失函数指数损失函数,而gbdt分类用的损失函数是logloss并且以logodds做的计算
- 两个的基模型不一样,adaboost分类的基是分类树模型,gbdt分类的基是回归树模型。
- 两个模型中,新模型学习之前模型所没有捕捉到的规律的方式不一样,adaboost中,之前的模型通过加大预测错的样本的权重,从而提醒下一个模型要认真学习预测错的样本(之前所没有捕捉到的规律)。而GBDT中,直接通过logodds的残差值来训练新的模型
3.gbdt如何做回归任务
- 基模型为回归树模型
- 损失函数为MSE
- 使用新的模型去拟合之前所有的回归树叠加起来下遗留下来的残差,从而学习特征和标签之间的规律
4.gbdt和xgboost的区别是什么?
- xgboost可以看成gbdt的升级版
- xgboost其实就是在gbdt的损失函数上加了约束项,从而控制整体模型的复杂度。
- 约束项为新的树模型的叶节点个数相关,和叶节点输出值相关。
- xgboost包算法不仅仅可以做分类,回归,而且可以做排序
- xgboost包可以部署分布式