集成学习(ensemble Learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等,其一般结构是先产生一组“个体学习器”(individual learning),再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据中产生,如果个体学习器的集成是同质(homogeneous)的,那么同质集成中的个体学习器称为“基学习器”(base learner);如果是异质(heterogenous)的,则相应的个体学习器称为“组件学习器”(component learner)或直接称为个体学习器。
其主要分为三大类:Boosting、Bagging、Stacking。其中Boosting的代表有AdaBoost,gbdt,xgboost;Bagging的代表则是随机森林(Random Forest)。
Boosting主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构造出很强的集成;而Bagging主要关注降低方差,因此它在不剪枝的决策树、神经网络等学习器上效用更为明显。
一、Boosting
Boosting是一种可将弱学习器提升为强学习器的算法,它是一种序列化方法,有着强依赖关系,必须串行生成,不过xgboost有些例外,xgboost可以在节点分裂属性选择上做并行计算。Boo