在机器学习领域,集成学习是一种通过组合多个分类器或模型来提高预测准确性的技术。这种技术特别适用于模型不稳定(灵活)且在不同样本集之间具有高方差的情况。集成学习的基本思想是让模型在给定数据集中尽可能多地暴露于方差之中。为了简化,这里使用决策树模型作为基础分类器。
AdaBoost是一种集成技术,它将多个弱学习器组合起来形成一个强学习器。在这里,每个弱学习器通常被开发为决策桩(一个只有单个分割和两个终端节点的树),用于对观测值进行分类。与随机森林不同,这里的每个分类器都根据其性能被分配了不同的权重(准确度越高,权重越大,反之亦然)。每轮结束后,还会给观测值分配权重,使得错误预测的观测值权重增加,从而在下一个分类器的样本中被更频繁地选中。因此,连续的训练集依赖于前一个训练集,因此构建的树之间存在相关性。
AdaBoost通过在每棵树的末尾给观测值和每个分类器分配权重来提高预测准确性。因此,在AdaBoost中,每个分类器对最终预测都有不同的权重,与随机森林中所有树都被分配相等权重不同。
数学上,分类器的误差率由以下公式给出:
error_rate = \sum_{j=1}^{N} w_j I(y_j \neq \hat{y}_j)
其中 w_j 是分配给训练集 D 中每个观测值的权重,I 是恒等函数,用于过滤出分类器错误预测的结果。
分类器的重要性由以下公式给出:
importance = \frac{1}{N} \sum_{j=1}^{N} w_j I(y_j \neq \hat{y}_j)
更新观测值权重的机制是:
z_j = \frac{\exp(-\alpha_i)}{\sum_{k=1}^{N} \exp(-\alpha_k)}
exp(-alpha(i)) 减少正确分类观测值的权重,exp(alpha(i)) 增加错误分类观测值的权重,从而增加它们被选中的机会。z_j 是归一化因子,用于重新分配观测值的权重,使得所有权重之和为1。
每个观测值的最终预测是通过聚合每个分类器做出的加权平均预测来实现的。AdaBoost可能会导致过拟合,因此需要检查并限制树的数量。
让逐步执行GBM算法:
输入数据 (x_i, y_i) 其中 i = 1(1) n,n 是样本中的总观测值数,以及可微分的损失函数 L(Y_i, F(x))。
对于回归问题,有不同变体的损失函数,如绝对损失、Huber损失。通常,使用平方残差损失,原因是计算简单。对于分类问题,损失函数从负对数似然估计,转换为对数(几率)。
步骤1:用常数值初始化模型
F_0(x) = \gamma = \frac{1}{n} \sum_{i=1}^{n} y_i
这是在单个叶子上生长的第一棵树,之后在前一个分类器的残差上构建具有更大深度的树。通常,它是Y_i值的平均值,用于回归,以及用于分类的对数(几率)值。
步骤2:对于 m = 1 到 M,其中 M 是要构建的树的总数
F_m(x) = F_{m-1}(x) + \gamma_m \sum_{k=1}^{K} I(x \in R_{mk})
这个方程为每棵树的每个观测值提供了负梯度,包括前一个分类器的预测值。
F_m(x) = \arg\min_{F_m} \sum_{i=1}^{n} L(y_i, F_{m-1}(x_i) + F_m(x_i))
这个方程找到了每棵树的每个终端节点的聚合预测值,最小化了损失函数,包括前一个学习者的预测。
其中 n 是每棵树的学习率,它减少了每棵树对最终预测的影响,从而提高了准确性。
步骤3:输出
F_M(x)
GBM通过累积所有树的输入来做出最终预测。