戳蓝色字关注我们哟!
XGBoost是一种非常高效、灵活、便携的机器学习算法,也是各类比赛中的明星算法。XGBoost由梯度提升方法改进得来,在学习该算法时,经常会产生同类方法间究竟有什么差异的困惑,因此本文重点想对这些差异点进行汇总整理,便于更好的理解算法间异同,至于XGBoost原理的详细介绍,个人认为官网中内容已经很全面,因此这里不再搬运,有需要可查阅 https://xgboost.readthedocs.io/en/latest/tutorials/model.html 。
1
Bagging与Boost
XGBoost全称为Extreme Gradient Boosting,从名字便可以看出XGBoost算法应用了Boost算法思想。我们在学习Boost时,通常会与Bagging放到一起,两者均是通过将基分类器(又叫弱分类器)组合到一起形成强分类器的方法。因此首先将Boost与Bagging两种方法的差异点进行列举。两者的差异主要体现在样本选择、计算流程和强分类器生成方法上:
![658236c234323ff6540d0b4c31d304c4.png](https://i-blog.csdnimg.cn/blog_migrate/265bd6677e837bed0952aa078068d90a.jpeg)
![1a6a0a0f89112b9e5435b6464d495d19.png](https://i-blog.csdnimg.cn/blog_migrate/296a0fb8cad68acbb1acb19cdd0d8877.jpeg)
2
AdaBoost与Gradient Boost
上面讨论了Bagging和Boost两种集成算法思想,下面就对Boost相关算法进行进一步展开了解。AdaBoost和Gradient Boost是Boost中的两个经典算法,AdaBoost是第一个具有适应性的算法,具有里程碑似的意义 (更多有关AdaBoost介绍可见AdaBoost算法(R语言)) ,Gradient Boost是对残差进行训练,多种损失函数的可选择性增加了模型鲁棒性。Boost方法中有 两个关键点 ,一个是如何建立基分类器之间的关联?二是如何生成强分类器?AdaBoost和Gradient Boost的差异也主要体现在这两个方面:![6652843e0f77f4628038a27d23f6eb15.png](https://i-blog.csdnimg.cn/blog_migrate/8c1479dc477dad89c9154ebe91d574e4.jpeg)
3
GBDT与XGBoost
GBDT是Gradient Boost与树的结合,XGBoost的基本思想与GBDT类似,是GBDT的升级版,在模型泛化能力及运算速度上得到了进一步提高。![45cd7986059da809b626f85e17d5a4ca.png](https://i-blog.csdnimg.cn/blog_migrate/784017d506c6219f2c2f3b91fbf3f83e.png)
![58bdb6c631ae88f1aa935f0d9d53c024.png](https://i-blog.csdnimg.cn/blog_migrate/91970772a6b3b3ea5abfde95993e566a.jpeg)
![a496d8095261f8c521017c2620fd1786.png](https://i-blog.csdnimg.cn/blog_migrate/b8f9e83a01c6964af04729ab4b99309f.jpeg)
![3066309f55f02b17b19fa522b2ad1a66.png](https://i-blog.csdnimg.cn/blog_migrate/e41b121da1a63dba372e498a886277f4.png)
· Bagging算法(R语言)
· 静态爬虫与地址经纬度转换(python)
· 特征工程(一):前向逐步回归(R语言)
· 聚类(三):KNN算法(R语言)
· 小案例(六):预测小偷行为(python)
· ggplot2:正负区分条形图及美化