集成学习:串联(提升方法),并联(随机森林)
Adaboost:分类加法模型(更新样本权值,投票权值-由权值误差率决定)
提升树:回归加法模型 (更新标签:为上次模型的残差,由平方误差最小原则学得弱分类器)
AdaBoost(Adaptive Boosting)是一种流行的提升方法,它通过迭代地组合多个弱分类器来构建一个强分类器。AdaBoost的核心思想是:
- 弱学习器的转换:即使弱学习器的性能只比随机猜测略好,AdaBoost也能够通过适当的组合提升其性能。
- 样本权重的调整:在每一轮迭代中,AdaBoost增加被前一轮弱分类器错误分类样本的权重,减少正确分类样本的权重,从而使得后续的弱学习器更加关注难以分类的样本。
AdaBoost算法流程
- 初始化:为训练数据集的每个样本分配相同的权重。
- 迭代训练:在每一轮中,根据当前权重分布训练一个弱分类器,并计算其在加权训练集上的表现。
- 权重更新:根据弱分类器的错误率调整样本权重,为下一轮迭代做准备。
- 组合弱分类器:通过加权多数表决的方式组合所有弱分类器,形成最终的强分类器。
提升树:决策树的强强联合
提升树是一种以决策树作为基本分类器的提升方法,它在分类和回归问题上都表现出色。提升树的关键特点包括:
- 决策树的简洁性:提升树中的决策树通常具有较浅的深度,如决策树桩,这使得它们易于理解和实现。
- 逐步优化:通过逐步添加决策树并优化损失函数,提升树能够逐渐逼近复杂的数据结构。
提升树算法流程
- 初始化模型:通常以一个常数值或基于训练数据的简单模型开始。
- 负梯度计算:在每一步中,计算当前模型输出与真实值之间的残差,即损失函数的负梯度。
- 弱学习器训练:训练一个新的决策树,使其拟合这些残差。
- 模型更新:将新训练的决策树以一定的学习率加入到现有模型中,更新整体模型。
梯度提升:损失函数的梯度下降
梯度提升算法是提升方法的另一种形式,它通过利用损失函数的负梯度作为残差的近似值来训练弱学习器。梯度提升的关键步骤包括:
- 初始化:设置一个初始模型,通常是一个常量或简单的预测。
- 迭代优化:在每一轮迭代中,计算当前模型的负梯度,并用它来指导新弱学习器的训练。
- 模型更新:将新训练的弱学习器加入到现有模型中,逐步优化整体模型。