集成学习
至此我们已经了解了许多机器学习的方法~但是都是单枪匹马的作战,这节我们讨论的集成学习(ensemble learning)是通过构建并结合多个学习器来完成学习任务。
个体学习器可以是弱学习器,所谓弱学习器,就是学习器的正确率不用太高,大于50%即可。
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即:
- 个体学习器间不存在强依赖关系、可同时生成的并行化方法。代表就是Bagging和随机森林(Random Forest)。
- 以及个体学习器之间存在强依赖关系、必须串行生成的序列化方法是Boosting。
Bagging
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立,虽然不可能实现,但是可以使它们尽可能有大的差异。一份训练数据训练出来的学习器差异不大,我们可以考虑有不同的训练集。
Bagging是并行式集成学习方法最著名的代表。它直接基于我们之前说的自助采样法(bootstrap sampling)。自助采样法进行m次,得到m份训练数据。这样就可以训练m个学习器了。
Bagging常对分类任务使用简单投票法,对回归任务使用简单平均法。
从偏置-方差分解的角度来看,Bagging主要关注降低方差,因此在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。
随机森林
随机森林(Random Forest)是Bagging的一个扩展变体。在决策树训练过程中引入了随机属性选择。在RF中,对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k属性的子集,然后从这个子集中选择一个最优属性用于划分,这里k控制了随机性的引入程度:若k=d则与传统决策树一样,若k=1则为随机选择。