本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。
公式 (12-1) 是 XGBoost 的加法模型表达式,用于描述如何通过多个基模型的组合来进行预测。我们来逐步解析这个公式。
公式 (12-1) 的形式
y ^ i = ∑ k = 1 t f k ( x i ) \hat{y}_i = \sum_{k=1}^{t} f_k(x_i) y^i=k=1∑tfk(xi)
公式 (12-1) 的解释
-
符号和含义:
- y ^ i \hat{y}_i y^i:表示模型对第 i i i 个样本的预测值。
- t t t:表示当前的迭代轮数。XGBoost 是一个逐步迭代的过程,每一轮都会生成一个新的基模型(通常是决策树)。
- f k ( x i ) f_k(x_i) fk(xi):表示第 k k k 轮中生成的模型(决策树)对样本 i i i 的预测值。每个 f k f_k fk 都是一个弱学习器,在 XGBoost 中通常是回归树。
-
模型的加法结构:
- 这个公式表示,模型的最终预测值是通过逐步累加每一轮生成的弱学习器的预测值来获得的。
- XGBoost 的核心思想是采用一个加法模型,将每一轮的预测结果累加起来,以提高整体的预测精度。
- 在每一轮迭代中,XGBoost 会构建一个新的树 f k f_k fk 来修正之前模型的误差。这个新树的输出会被加入到之前树的累加结果中。
-
逐步优化的过程:
- 在初始化时,模型没有任何树,预测值通常是一个常数(如目标值的均值)。
- 每一轮迭代都会增加一个新的树 f k f_k fk,该树是为了减少当前模型在训练集上的预测误差而生成的。具体来说,新的树会学习当前模型的残差,即真实值和当前预测值之间的差异。
- 这种逐步添加树的过程,使得模型在每一轮都能更好地拟合训练数据的模式,从而逐步提升预测精度。
-
累加的意义:
- XGBoost 使用了梯度提升的思想,每一轮生成的树都是在之前树的基础上进行优化的。
- 通过这种累加结构,XGBoost 可以在不断降低误差的同时,逐步逼近真实的目标值 y i y_i yi,最终获得一个强大的预测模型。
总结
公式 (12-1) 是 XGBoost 的核心表达式,它说明了如何通过多个弱学习器(决策树)的累加来进行预测。XGBoost 并不是一次性生成一个复杂模型,而是通过逐步构建多个弱学习器,使得每一轮的弱学习器都能对之前的误差进行修正。最终的预测结果是所有弱学习器预测值的累加,从而形成一个强学习器,达到更高的精度。