数据挖掘-XGBoost方法简介
初探XGBoost方法
在本文中将会继续介绍集成学习里的boosting思路,并且会选用XGBoost方法来介绍。XGBoost是一种优化过的提升学习方法,该方法在一些竞赛或者项目中经常被使用,它的预测正确率是比较高的,总体来说性能不错。其实从该方法的名字我们可以发现,这是一种在GBDT方法的基础上进行优化的方法,该方法可以直接用作预测或者和其他机器学习算法一起进行预测。
我们如何理解XGBoost的思路,其实就是在GBDT的基础上,修改了损失函数的表达式,因为XGBoost本质上内部也是由一些CART树按顺序排列,每次都是当前的CART树去学习之前树的残差的,但是在损失函数的定义上,XGBoost并不是简单将各个CART树的损失函数进行叠加,而是在这个基础上加上了参数的二阶正则项,通过约束参数来达到更强的稳健性;与此同时,在损失函数的内部,与传统的一阶泰勒展开近似方法不同的是,XGBoost使用的是二阶泰勒展开近似,这种近似是更加消耗计算机资源的,但是显然会使得预测结果更加准确。所以XGBoost方法某种程度上是通过空间和时间换取模型的准确率,从而提升模型的预测效果。
对于XGBoost方法的处理步骤其实就是三个步骤,在这里简单进行说明:
1)初始化相关的参数,包括树的个数、深度等参数,这个和之前GBDT的初始化基本相同。
2)开始反复迭代地添加CART树,和GBDT一样进行特征的分裂后生成新的CART树,并且这个新的CART树是去拟合之前所有树的预测值和准确值的残差的,我们可以很明显地发现,当前这个步骤和GBDT是完全一样的。