集成学习:Bagging&Boosting思想以及随机森林&GBDT方法介绍
前言
面对一个机器学习问题,通常有两种策略。一种是尝试各种模型,选择最合适的模型做重点调参优化,来达到我们的效果,另外一种就是不花费过多精力在一个模型上,而是多训练几个不太相关的模型,然后综合考量各个模型的结果作最终决策。这两种方法都有体现集成学习的思想,前一种是 b o o s t i n g boosting boosting,而后一种则是 b a g g i n g bagging bagging的思想。本文整理了集成学习的学习资料,并对它们对应的常用的算法模型进行了介绍,希望能对大家有帮助。
一、 B a g g i n g Bagging Bagging& B o o s t i n g Boosting Boosting介绍
1.1 Bagging
B a g g i n g Bagging Bagging方法是一个集体决策的过程,每个个体都进行单独学习,学习的内容可以相同也可以不同,也可以部分重叠,但由于个体之间存在差异性导致每个个体做出的判断也不会完全一致,在最终做决策时,通过投票或者加权的方式做出最终集体决策。 B a g g i n g Bagging Bagging方法在训练过程中各基分类器之间无强依赖,可以进行并行训练。
1.2 Boosting
B o o s t i n g Boosting Boosting的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本给予更高的权重,测试时根据各层分类器的结果的加权得到最终结果。 B o o s t i n g Boosting Boosting在学习的过程中会针对判断错误的样本数据进行加强学习,以减少类似的错误发生,不断循环往复直到犯错的次数减少到很低的程度。 B o o s t i n g Boosting Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。
B a g g i n g Bagging Bagging方法采用分而治之的策略,通过对训练样本多次采样,分别训练出不同的模型作综合来减少集成分类器的方差,而 B o o s t i n g Boosting Boosting则通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。
二、集成学习的步骤
集成学习一般可分为以下3个步骤:
- 找到误差互相独立的基分类器;
- 训练基分类器;
- 合并基分类器的结果。
合并基分类器的方法有 v o t i n g voting voting和 s t a c k i n g stacking stacking两种。前者是投票的方式,将获得最多选票的结果作为最终的结果,后者是用串行的方式把前一个基分类器的结果输出到下一个分类器,将所有基分类器的输出结果相加作为最终的输出。(或者用更复杂的算法融合,比如把各类基分类器的输出作为特征,使用逻辑回归作为融合模型进行最后的结果预测)
A d a b o o s t Adaboost Adaboost可以明显地看到 B o o s t i n g Boosting Boosting的思想,对分类正确的样本降低了权重,对分类错误的样本升高或者保持权重不变,在最后进行模型融合的过程中,也根据错误率对基分类器进行加权融合。另一个流行的模型是梯度提升决策树(GBDT),其核心思想是每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值之后能得真实值得累加量。 B o o s t i n g Boosting Boosting的本质实际上是一个加法模型,通过改变训练样本权重学习多个分类器并进行一些线性组合。而 A d a b o o s t Adaboost Adabo