一、简介
Xgboost 的全称是eXtreme Gradient Boosting,由华盛顿大学的陈天奇博士提出,在Kaggle的希格斯子信号识别竞赛中使用,因其出众的效率与较高的预测准确度而引起了广泛的关注。
下面将从以下几个方面描述Xgboost:
- Xgboost的算法的流程?
- Xgboost如何选择特征 ?
- Xgboost如何构建特征 ?
- Xgboost如何用于分类?
- Xgboost通过什么方式减少误差 ?
- Xgboost的效果相比于传统的LR,SVM效果为什么好一些 ?
- Xgboost如何加速训练?
- Xgboost的参数有哪些,如何调参 ?
- Xgboost实战当中遇到的一些问题 ?
- Xgboost的优缺点 ?
几个误区:
1. Xgboost的算法的流程?
(1)引入
回归树:每个叶子节点都有一个分数,预测的结果就是所有树的分数之和
输入:age,gender,occupation,...
输出:判断一个人是否喜欢打游戏
(2)算法
Xgboost正则惩罚项,对于任意一棵树,叶子个数越多,惩罚力度越大,叶子的权重越大,惩罚力度越大
现在还剩下一个问题,我们如何选择每一轮加入什么f呢?
选取一个f来使得我们的目标函数尽量最大地降低。
残差:前一轮的得分减去目标得分
所有样本都会落到叶子节点上,所以计算所有样本相当于计算所有叶子节点。
obj代表了当我们指定一个树的结构的时候,我们在目标上最多减少多少,我们可以把它叫做结构分数。