集成学习
集成学习选择一个由一系列假设h1,h2,⋯,hn构成的集合,通过平均投票或者其他方法将预测结果组合
- 每个单独的假设称为基模型
- 它们组合后的模型称为集成模型
假设集成学习通过简单投票法结合K个基分类器,若超过半数的基分类器正确,则集成分类就输出正确,即
h(x)=sign(i∑hi(x))
假定基分类器的错误率相互独立,若为ϵ,则集成后的错误率为
k=0∑K/2(kK)(1−ϵ)kϵK−k≤exp(−21K(1−2ϵ)2)
随着K增大,错误率将指数下降
自助聚合法(Bagging)
首先创建多个随机训练数据集(训练数据集的子集)。然后基于随机训练数据集建立多个基模型。最后,汇总这些基模型的结果,可使用平均或多数投票
提升法(Boosting)
Boosting 是一种迭代的集成学习方法,它的目标是让分类器(或者模型)在训练过程中重点关注那些难以分类的样本
具体做法是根据上一轮分类的结果,自适应地调整训练样本的权重,使得错误分类的样本权重变大,让分类器在下一轮中更关注这些难以分类的样本
自适应提升法AdaBoost
AdaBoost 算法通过迭代训练多个弱分类器,每轮根据上轮分类结果调整样本权重,使错误分类的样本获得更高权重,从而在下一轮训练中被弱分类器重点关注。最终,所有弱分类器按其性能加权组合,形成一个强分类器。这个过程通过加权投票机制,将多个表现一般的弱分类器整合为一个高性能的强分类器
Hk(x)=sign(k=1∑Lαkhk(x))
随机森林
随机森林是一种集成学习算法,主要通过多个决策树的组合来进行分类或回归。它的工作流程如下:
- 随机采样:从训练数据集中通过有放回的方式随机抽取若干个样本,形成多个新的训练子集
- 随机特征选择:在构建每棵决策树时,从所有特征中随机选择一部分特征,然后基于这些特征来分裂节点
- 构建决策树:使用上述样本和选定特征,利用决策树算法(如CART)生成一棵决策树,每棵树独立生长,不进行剪枝
- 投票或平均:对于分类任务,随机森林将所有决策树的结果进行投票,选择出现次数最多的类别作为最终结果;对于回归任务,取所有树预测结果的平均值作为输出
随机森林通过引入随机性(随机样本和随机特征),有效地降低了单个决策树过拟合的风险,并提高了模型的泛化能力
堆叠泛化
堆叠泛化(Stacking) 是一种集成学习方法,主要通过将不同类型的模型组合起来,进一步提升预测性能
- 使用相同数据训练不同模型:在同一训练数据集上,分别训练多个不同类型的基模型(如SVM、逻辑回归、决策树等)
- 预测与验证:基模型对训练数据进行预测,并使用验证集(通过交叉验证)得到每个模型的输出结果
- 构建第二层模型:将基模型的预测结果作为新的输入特征,训练一个高层次的集成模型(如逻辑回归、线性回归等)。该模型负责综合所有基模型的结果,得到最终的预测输出
- 堆叠多层:堆叠可以继续多层扩展,每一层的输出作为下一层的输入,逐步优化整体模型性能
堆叠泛化通过组合多种不同模型的优势,并用一个新的集成模型学习如何整合它们的结果,从而减少偏差,提升预测效果,通常能优于单个模型的性能