XGBoost(eXtreme Gradient Boosting)

XGBoost(eXtreme Gradient Boosting)极致梯度提升,是一种基于GBDT的算法或者说工程实现。

XGBoost的基本思想和GBDT相同,但是做了一些优化,比如二阶导数使损失函数更精准;正则项避免树过拟合;Block存储可以并行计算等。

XGBoost具有高效、灵活和轻便的特点,在数据挖掘、推荐系统等领域得到广泛的应用。

GBDT

梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是一种基于boosting集成思想的加法模型,训练时采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差
梯度提升决策树算法(GBDT)如下:

第一步:初始化弱学习器
第二步:迭代训练
第三步:得到最终学习器

函数的近似计算
f(x)≈ f(x0)+ f ’ (x0)(x - x0)
适用于:f(x0),f ’ (x0)易求
本质:用x的线性函数f(x0)+ f ’ (x0)(x - x0)来近似表达函数f(x)

泰勒公式
一阶展开式同上
二阶展开式精度更高,误差更小

正则
L1正则化:根据权重的绝对值的总和来惩罚权重。
L2正则化:根据权重的平方来惩罚权重。

XGBoost原理

XGBoost(eXtreme Gradient Boosting)极致梯度提升,是基于GBDT的一种算法。

2016年,陈天奇在论文《 XGBoost:A Scalable Tree Boosting System》中正式提出。

XGBoost的基本思想和GBDT相同,但XGBoost进行许多优化:

  • 利用二阶泰勒公式展开,优化损失函数,提高计算精确度
  • 利用正则项。简化模型,避免过拟合
  • 采用Blocks存储结构。可以进行并行计算

XGBoost目标函数推导
XGBoost的目标函数由损失函数正则化项两部分组成。
XGBoost(eXtreme Gradient Boosting)_第1张图片
用GBDT梯度提升树表达方式XGBoost。
XGBoost(eXtreme Gradient Boosting)_第2张图片
接下来,三个步骤优化XGBoost目标函数。

第一步:二阶泰勒展开,去除常数项,优化损失函数项;
第二步:正则化项展开,去除常数项,优化正则化项;
第三步:合并一次项系数、二次项系数,得到最终目标函数
XGBoost(eXtreme Gradient Boosting)_第3张图片
XGBoost(eXtreme Gradient Boosting)_第4张图片
XGBoost(eXtreme Gradient Boosting)_第5张图片
XGBoost(eXtreme Gradient Boosting)_第6张图片
XGBoost(eXtreme Gradient Boosting)_第7张图片
XGBoost(eXtreme Gradient Boosting)_第8张图片

XGBoost目标函数解,构建形如一元二次方程形式,求最优值
XGBoost(eXtreme Gradient Boosting)_第9张图片
XGBoost(eXtreme Gradient Boosting)_第10张图片

XGBoost应用

XGBoost库是XGBoost算法的一种实现。

XGBoost是一个优化的分布式梯度提升库,被设计为高效、灵活和轻便。

GitHub:[https://github.com/tqchen/xgboost]
(https://github.com/tqchen/xgboost)
XGBoost一个很重要应用就是进行数据特征挖掘分析

总结

1、XGBoost的优缺点
XGBoost(eXtreme Gradient Boosting)_第11张图片
2、XGBoost VS GBDT
XGBoost(eXtreme Gradient Boosting)_第12张图片
XGBoost(eXtreme Gradient Boosting)_第13张图片

你可能感兴趣的:(AI,算法)