XGBoost(一):与同类算法的差异对比
2021-03-23 20:42
127 查看
1
Bagging与Boost
XGBoost全称为Extreme Gradient Boosting,从名字便可以看出XGBoost算法应用了Boost算法思想。我们在学习Boost时,通常会与Bagging放到一起,两者均是通过将基分类器(又叫弱分类器)组合到一起形成强分类器的方法。因此首先将Boost与Bagging两种方法的差异点进行列举。两者的差异主要体现在样本选择、计算流程和强分类器生成方法上:
在网上找到两张图,可以直观展示了两种方法的计算顺序及主要思想。Bagging可以并行训练各子模型,Boost则需要依赖前一次的训练结果。更多Bagging算法介绍可参考之前的文章Bagging算法(R语言)。
(图片来源网址:http://www.seotest.cn/jishu/34057.html)
2
AdaBoost与Gradient Boost
上面讨论了Bagging和Boost两种集成算法思想,下面就对Boost相关算法进行进一步展开了解。AdaBoost和Gradient Boost是Boost中的两个经典算法,AdaBoost是第一个具有适应性的算法,具有里程碑似的意义(更多有关AdaBoost介绍可见AdaBoost算法(R语言)),Gradient Boost是对残差进行训练,多种损失函数的可选择性增加了模型鲁棒性。Boost方法中有两个关键点,一个是如何建立基分类器之间的关联?二是如何生成强分类器?AdaBoost和Gradient Boost的差异也主要体现在这两个方面:3
GBDT与XGBoost
GBDT是Gradient Boost与树的结合,XGBoost的基本思想与GBDT类似,是GBDT的升级版,在模型泛化能力及运算速度上得到了进一步提高。 XGBoost除回归树外,还可使用线性分类器,并且在目标函数方面,XGBoost的目标函数加入了正则项,正则项中包含了叶子节点数和叶子评分的L2范数,通过对树模型复杂度的控制避免过拟合,提升模型的泛化能力。 在模型优化过程中,XGBoost通过二阶泰勒展开得到目标函数的近似,相比于GBDT优化只涉及一阶导,XGBoost的优化速度更快。 除此之外XGBoost在样本选择、并行计算、缺失值处理等方面,也有一定的改进,这些改进共同使得XGBoost在计算效率及预测结果上表现出明显优势,成为当下热门的算法之一。本次内容通过几种方法的差异性对比,了解了XGBoost的算法特点及相应优势,下一篇我们将介绍XGBoost的代码实现。相关文章推荐
- 算法梳理Xgboost
- Xgboost与Lightgbm参数对比
- 常见算法(logistic回归,随机森林,GBDT和xgboost)
- 说说xgboost算法
- XGBoost算法学习记录
- 常见算法(logistic回归,随机森林,GBDT和xgboost)
- 机器学习(二)——xgboost(实战篇)Pima印第安人数据集上的机器学习-分类算法(根据诊断措施预测糖尿病的发病)
- 算法梳理之XGBoost
- 算法强化 —— XGBoost(三)
- 机器学习集成算法:XGBoost思想
- boosting算法原理以及GBDT与Xgboost的比较
- CatBoost、LightGBM、XGBoost,这些算法你都了解吗?
- 算法强化 —— XGBoost(二)
- 集成算法-xgboost/bagging/voting
- 算法强化 —— XGBoost
- 高级算法梳理——XGBoost
- 人工智能算法通俗讲解系列(四):xgboost
- python xgboost算法实践
- GBDT和Xgboost对比
- 第八篇:机器学习基础:集成学习算法:随机森林、Adaboost、 XGBoost