Task5 模型集成
1. 集成学习方法
– 假设你有许多基础分类器—“简单的分类规则”,则组合
这些分类规则可能是一个好主意, 可能会比单个规则获得
更高的精度
– 选择基础分类器时候往往主要考虑的是其简单性,而非精
度
– 基础分类器应该对总体中的一部分不同个体是精确的,他
们组合起来可以有效处理所有个体 (即互为补充)
– 基础分类器之间的差异
-
不同基础分类器有着不同的假设
-
同一分类器有着不同的超参数
-
同一输入对象或事件的不同表达:例如语音识别里面
嘴唇运动的声音特征和形状变化过程都是输入 -
不同的训练集:使用不同训练集并行或者依次训练基
础分类器 -
不同的子任务: 主要任务通过使用一些基础分类器解
决一系列子任务而完成
– 组合基础分类器 -
多专家综合方法 (并行方式)
· 基础分类器并行方式运行
· 综合每个分类器的结果给出最终结果
· 例如:投票制 -
多阶段综合方法 (依序方式)
· 基础分类器依序进行
· 根据复杂性将基础分类器从小到大排序:不使用
复杂的分类器,除非都不满意前面的简单分类器
• 一个集成学习方法比单个学习方法的推广能力更强,原因在于
– 训练集没有包含可以选择一个最佳分类器的充分信息
– 学习算法的学习过程可能不完美
– 搜索的空间可能没有包含真正的目标函数,而集成学习可
以给出更好的近似 -
模型选择和模型平均(集成学习)
– 当一个模型比其他模型显著的更精确,则模型选择方法更
好
– 如果所有模型预测精度类似,则模型平均方法更好
2.投票
• 投票 (voting) 方法使用所有基础学习器结果的凸组合作为最终
决策:其中 w i 为权重, d i 为第 i 个学习器的预测结果; Θ = (θ 1 , . . . , θ L )
为所有学习器的参数.
3.集成学习类别
-
Bagging
Bagging,这个名字就是从袋子里取的意思,本身便很形象的说明了这个算法的核心思想,即在原始数据集上通过有放回的抽样的方式,重新选择出 S 个新数据集来分别训练 S 个分类器,随后在预测的时候采用多数投票或者求均值的方式来判断预测结果。 -
Boosting
提升学习(Boosting),这个名字也很形象,在赛车游戏中氮气加速有时候界面就描述是 boost,也就是越加越快,每次都比上一次更快,也就是说同 Bagging 是不一样的,Boosting 是会根据其他的弱分类器的结果来更改数据集再喂给下一个弱分类器。准确的描述为,Boosting 算法每一步产生弱预测模型(如决策树),并加权累加到总模型中。
它的意义在于如果一个问题存在弱预测模型,那么可以通过提升技术的办法得到一个强预测模型。
- Stacking
Bagging 是把训练集拆成不同的子集训练多个学习器投票,而 Boosting 是根据学习器学习的结果来改动数据集,经过多层改动后试图获得一个更好的预测效果。Bagging 和 Boosting 这两个集成学习其实并没有通过训练结果来改变弱分类器的参数。相对比而言,Stacking 就激进许多,当然也复杂和困难许多,它首先训练出多个不同的模型,然后再以之前训练的各个模型的输出作为输入来新训练一个新的模型,换句话说,Stacking 算法根据模型的输出是允许改其他分类器的参数甚至结构的,也正是因为这点sklearn中很少有 stacking 的内置的算法.