1.XGBoost引入
XGBoost
是由
传统
的
GBDT
模型
发
展而来的,在上一
节
中,
GBDT
模型在求解最
优
化
问题
时应
用了一
阶导
技
术
,而
XGBoost
则
使用
损
失函数的一
阶
和二
阶导
,更神奇的是用
户
可以自定
义损
失函数,只要
损
失函数可一
阶
和二
阶
求
导
。除此,
XGBoost
算法相比于
GBDT
算法
还
有其
他
优
点,例如支持并行
计
算,大大提高算法的运行效率;
XGBoost
在
损
失函数中加入了正
则项
,
用来控制模型的复
杂
度,
进
而可以防止模型的
过拟
合;
XGBoost
除了支持
CART
基
础
模型,
还
支
持
线
性基
础
模型;
XGBoost
采用了随机森林的思想,
对
字段
进
行抽
样
,既可以防止
过拟
合,也可
以降低模型的
计
算量。
2.XGBoost损失函数推导
在
实际应
用
中,根据某个
给
定的增益
阈值
,
对树
的生
长进
行剪枝,当
节
点分割后
产
生的增益小于
阈值时
,
剪掉
该
分割,否
则
允
许
分割。最
终
,根据增益
值Gain来决定最佳树结构
的选择。
这里提个外话:xgboost怎么给特征评分?
除了枚举所有不同树结构的贪心法,还有针对主要针对数据太大,不能直接进行计算的近似算法,最后还有lightgbm的
histogram方法。(参考:https://www.julyedu.com/question/big/kp_id/23/ques_id/2079 xgboost怎么给特征评分?)
4.XGBoost的优点
之所以XGBoost可以成为机器学习的大杀器,广泛用于数据科学竞赛和工业界,是因为它有许多优点:
1.使用许多策略去防止过拟合,如:正则化项、Shrinkage 衰减 and Column Subsampling 列抽样等。
2. 目标函数优化利用了损失函数关于待求函数的二阶导数
3.支持并行化,这是XGBoost的闪光点,虽然树与树之间是串行关系,但是同层级节点可并行。具体的对于某个节点,节点内选择最佳分裂点,候选分裂点计算增益用多线程并行。训练速度快。另外分裂 除了枚举所有不同树结构的贪心法,还实现了分裂点寻找近似算法。
4.添加了对稀疏数据的处理。
5.交叉验证,early stop,当预测结果已经很好的时候可以提前停止建树,加快训练速度。
6.支持设置样本权重,该权重体现在一阶导数g和二阶导数h,通过调整权重可以去更加关注一些样本。
7.目标函数相对dbdt 显示的把树模型复杂度作为正则项加到优化目标中。
8.数据事先排序并且以block形式存储,有利于并行计算。
https://www.julyedu.com/question/big/kp_id/23/ques_id/1037 46、怎么理解决策树、xgboost能处理缺失值?而有的模型(svm)对缺失值比较敏感。
参考文献:
https://blog.csdn.net/qq_32742009/article/details/81949444 【机器学习】集成学习知识点总结二
https://mp.weixin.qq.com/s?__biz=MzU5MTcxNzE3Mg==&mid=2247484037&idx=1&sn=455ddf50d78ed44c32d3519aa8b98b75&chksm=fe2bf4dec95c7dc874190fc36a9f692c49541877b279dc945d35a212dd1d01496298011ca9ee&scene=0&xtrack=1&key=37b4d3bb1636246ff232d685a91774b3d3a56bedcee5ae5123f43c85b2d30e7fe1a6a5759a64d80da24c288ed144ac986823db3a9da22f541f5ab1f60776b2a9695caa78cd8bf85a22c64d0bd7e1e45a&ascene=1&uin=Nzg4MzQ4NTMy&devicetype=Windows+10&version=62080079&lang=zh_CN&exportkey=Aeh9i3Ptmsfij0CHLXpICeg%3D&pass_ticket=tDGPDp6wGprdH3wPv7iS8s%2FOj5WG3rOx80rVQKRGqbv%2F3dgezgBeR44y4I9fJSaF 史上最详细的集成学习讲解,XGBoost 和 LightGBM 一看就明白了
https://zhuanlan.zhihu.com/p/72159928 集成学习终篇:从CART回归树开始,经历BDT、GBDT彻底理解XGBoost
https://blog.csdn.net/wjwfighting/article/details/82532847 机器不学习:机器学习时代的三大神器:GBDT,XGBOOST和LightGBM