xgboost是一种集成分类器(弱分类器),xgboost 是基于提升树的。
提升树:简单说,就是一个模型表现不好,我继续按照原来模型表现不好的那部分训练第二个模型,依次类推。
形象的比喻就是:
做题的时候,第一个人做一遍得到一个分数,第二个人去做第一个人做错的题目,第三个人去做第二个人做错的题目,以此类推,不停的去拟合从而可以使整张试卷分数可以得到100分(极端情况)。
把这个比喻替换到模型来说,就是真实值为100,第一个模型预测为90,差10分,第二个模型以10为目标值去训练并预测,预测值为7,差三分,第三个模型以3为目标值去训练并预测,以此类推。
1. xgboost原理解读
1.0 学习路径:
我们xgboost的学习路径可以按照下面四个步骤来:
构造原始目标函数问题:
xgboost目标函数包含损失函数和基于树的复杂度的正则项;
泰勒展开问题:
原始目标函数直接优化比较难,如何使用泰勒二阶展开进行近似;
树参数化问题:
假设弱学习器为树模型,如何将树参数化,并入到目标函数中;这一步的核心就是要明白我们模型优化的核心就是优化参数,没有参数怎么训练样本,怎么对新样本进行预测呢?
如何优化化简之后的目标函数问题: