目录 |
1. 基础知识 |
1.1 何为集成学习 |
面对一个机器学习问题, 通常有两种策略。 一种是研发人员尝试各种模型,选择其中表现最好的模型做重点调参优化。 这种策略类似于奥运会比赛, 通过强强竞争来选拔最优的运动员, 并逐步提高成绩。 另一种重要的策略是集各家之长, 如同贤明的君主广泛地听取众多谋臣的建议, 然后综合考虑, 得到最终决策。 后一种策略的核心, 是将多个分类器的结果统一成一个最终的决策。 使用这类策略的机器学习方法统称为集成学习。 其中的每个单独的分类器称为基分类器
1.2 集成学习一般流程 |
集成学习一般可分为以下3个步骤。
(1) 找到误差互相独立的基分类器。
(2) 训练基分类器。
(3) 合并基分类器的结果。
合并基分类器的方法有voting和stacking两种。 前者是用投票的方式, 将获得最多选票的结果作为最终的结果。 后者是用串行的方式, 把前一个基分类器的结果输出到下一个分类器, 将所有基分类器的输出结果相加(或者用更复杂的算法融合, 比如把各基分类器的输出作为特征, 使用逻辑回归作为融合模型进行最后的结果预测) 作为最终的输出。
1.3 模型融合方法 |
- Boosting
Boosting方法训练基分类器时采用串行的方式, 各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加, 每一层在训练的时候, 对前一层基分类器分错的样本, 给予更高的权重。 测试时, 根据各层分类器的结果的加权得到最终结果。
Boosting的过程很类似于人类学习的过程,我们学习新知识的过程往往是迭代式的, 第一遍学习的时候, 我们会记住一部分知识, 但往往也会犯一些错误, 对于这些错误, 我们的印象会很深。 第二遍学习的时候, 就会针对犯过错误的知识加强学习, 以减少类似的错误发生。 不断循环往复, 直到犯错误的次数减少到很低的程度。
- Bagging
Bagging与Boosting的串行训练方式不同, Bagging方法在训练过程中, 各基分类器之间无强依赖, 可以进行并行训练。 其中很著名的算法之一是基于决策树基分类器的随机森林(Random Forest) 。 为了让基分类器之间