0%

从集成学习谈起

在机器学习中的常规算法,都是作为一个独立模型发挥作用,而集成学习就是让这些单独的模型一起解决问题,实现“3 个臭皮匠顶个诸葛亮”的效果”。集成学习归属于机器学习,是一种训练思路,并不是某种具体的方法或者算法。

集成学习通过将多个弱学习器进行结合,通常可以获得比单一学习器显著优越的泛化性能。要想获得好的集成,需要个体学习器“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器之间有差异性。假设个体学习器之间的错误率相互独立,那随着集成中的个体learner数目增加,集成后的错误率将指数下降。在实际情况下,准确性和多样性存在冲突。如何产生“好而不同”的个体learner,是集成学习的研究核心。

根据个体learner的生成方式,可以把集成学习分为两类,一类是个体learner之间存在强依赖关系,必须串行生成的序列化方法。一类是learner之间不存在强依赖关系,可以同时生成的并行化方法。前者的代表是boosting,后者的代表是Bagging以及随机森林(Random Forest) 1. boosting 2. bagging(bootstrap aggregating的缩写,也称作“套袋法”)

Boosting 和 bagging 最本质的差别在于他对基础模型不是一致对待的,而是经过不停的考验和筛选来挑选出「精英」,然后给精英更多的投票权,表现不好的基础模型则给较少的投票权,然后综合所有人的投票得到最终结果。

boosting

主流的方法有Adaboost和Gradient Boost