集成学习
2018-10-17 本文已影响3人
0过把火0
序
本次以及后续几次博客将陆续记录关于集成学习模型的相关知识点。
Ensemble概述
集成学习 就是构造若干模型并用它们的(加权预测/投票)值用于对新样本的预测。类似于多个决策者进行同一个决策。通常来说集成的效果要好于单个模型,当特征,数据,单个模型做到瓶颈时,多模型带来的提升很明显。
衡量集成学习效果的指标为:
1)准确性
每个基学习器需要有一定的学习能力,也就是其准确性要有所保证,一般在0.5以上
2)多样性
基学习器之间需要有一定的差异,这样集成的效果才会好
类别
目前集成学习大致分为4种:
1)bagging
基学习器之间不存在强依赖性,通过有放回地重采样得到多组训练集,然后在不同训练集上训练得到一个基学习器
2)boosting
基学习器之间存在强依赖性,通过对上一个基学习器在数据集上表现来修改样本权重,使得下一个基学习器更加关注被错分的样本。
3)Stacking
通过K-floder训练不同的基模型,以基模型的预测输出作为新的特征,重复多伦
4)Blending
与stacking有点相似,不同在于blending中选取一个固定的验证集,我们事先在训练集上训练n个基模型,然后同时对验证集验证,再投票或加权平均最终确定其预测值为多少。
集成学习为何有效
首先我们需要回归到学习问题的本质:假设样本从分布p(x, y)中采样得到,我们的目标是从所有可能的函数空间 H 中找到最佳的假设函数h(x),来使得我们的损失函数的期望值最小。
那么从误差减少这一本质来看集成学习,可以从一下三个方面进行解释:
- 模型误差
○ 由于我们通常在子空间搜索,而不是整个空间H中搜索,因此会存在模型误差。
○ 因为假设空间是人为规定的,而实际中很多时候我们的实际目标假设不在原始的假设空间中,那么如果我们人为地指定几个假设空间,并通过模型将其进行集成,一定程度上可以缓解模型误差。 - 统计误差
○ 对于一般的训练任务而言,都是通过样本采样来极小化误差,往往需要搜索很大的假设空间,但是训练集的样本数不足以支撑模型能够精确地学习到目标假设,这个时候学习到的就是仅仅是满足训练集的假设,也就是所谓的过拟合,因此,通过将多个学习器学习到的假设进行结合,一定程度上可以缓解统计误差。 - 优化误差
○ 一般来说,学习到一个最优的NN模型或是DT模型已经被证明是一个NP-hard问题,因为优化过程往往会陷入局部最优解,因此,多模型集成一定程度上更加逼近真实解。