集成学习
集成学习正是使用多个个体学习器来获得比每个单独学习器更好的预测性能。监督学习的任务是通过假设空间搜索来找到能够对特定问题给出良好预测的假设。
但问题是即使这样的假设存在,能否找到也在两可之间。因而集成学习的作用就是将多个可以得到假设整合为单个更好的假设,其一般结构是先产生一组个体学习器,再使用某种策略将它们加以整合。
每个组中的个体学习器如果属于同一类型(比如都是线性回归或者都是决策树),形成的就是同质集成;相应地,由不同类型学习器得到的集成则称为异质集成。
但是所谓的集成,对于集成的各个个体首先就是个体的不能有太高的错误率,否则集成后很可能放大了错误。其次就是个体间要有一定差异性,这样才能取长补短获得更好的效果。
个体学习器的生成方式很大程度上取决于数据的使用策略。根据训练数据使用方法的不同,集成学习方法可以分为两类:个体学习器间存在强依赖关系因而必须串行生成的序列化方法,和个体学习器之间不存在强依赖关系因而可以同时生成的并行化方法。
序列化方法中的数据使用机制被称为提升(Boosting),其基本思路是对所有训练数据进行多次重复应用,每次应用前需要对样本的概率分布做出调整,以达到不同的训练效果。
与 Boosting 相比,并行化方法中的数据使用机制是将原始的训练数据集拆分成若干互不交叠的子集,再根据每个子集独立地训练出不同的个体学习器。这种方法被称为自助聚合(Bootstrap AGgregation),简称打包(Bagging)。在 Bagging 机制中,不同个体学习器之间的多样性容易得到保证;但由于每个个体学习