什么是XGboost
XGboost本质上还是GBDT,两者都是Boosting方法
XGboost 和 GBDT的主要区别是目标函数的定义
XGboost的目标函数是
l()为损失函数
是正则项
constant是常数项
XGboost 的核心算法思想:
1、不断添加树,每添加一个树,即学习一个新的函数f(x),去拟合上次预测的残差
2、训练完成后得到k颗树,根据样本特征,在每棵树中都会落到一个叶子节点下
3、叶子结点对应的值相加就是预测结果
新加入的树如何构建呢?
新的f_t(x)使得目标函数尽可能的小
正则项部分
XGboost对树的复杂度包含两部分:
1、树中叶子节点的个数T
2、树上叶子节点的得分w的L2模平方 即 对w进行L2正则化(目的:避免过拟合)
树的复杂度越小,泛化能力越强
XGboost和GBDT的不同
1、XGboost加入了正则项控制模型复杂度
2、GBDT只用了代价函数的一阶导数信息, XGboost对代价函数二阶泰勒展开,同时使用一阶、二阶导数
3、GBDT采用CART作为基分类器,XGboost支持多类型基分类器
4、GBDT每次迭代采用全部数据,XGboost采用与随机森林相似策略,支持数据采样
XGboost为什么要用泰勒展开
常见问题
1、xgboost适合处理哪些场景的问题?
2、xgboost 和 LR 的区别(应用)
3、xgboost的底层算法
4、xgboost的特征重要性计算、正则表达式
5、xgboost的原理,如何防止过拟合
6、lightgbm xgboost rf lr 优缺点 应用场景
7、如果实现特征并行化
8、xgboost如何做分类任务