集成学习(ensemble learning)本身不是一个单独的机器学习算法,而是通过构建并结合多个机
器学习器来完成学习任务,所以常常比单一学习器具有更为显著的泛化性能。
先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法
从训练数据产生。
3、集成学习分类
根据个体学习器的生成方式,目前的集成学习主要可以分为两类:
①个体学习器之间存在强依赖关系、必须串行生成的序列化方法,代表是Boosting(提升)
②个体学习器之间不存在强依赖关系、可同时生成并行化方法,代表是Bagging(装袋)和 随机森林。
1、Bagging
并行训练n个基学习器,再将基学习器结合,构建出强学习器。在对预测输出进行结合时,
Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法。其本质是引入了样本扰
动,通过增加样本随机性,达到降低方差的效果。
bagging采用了一种有放回的抽样方法来生成训练数据(boostrap)。通过多轮有放回的对初始训
练集进行随机采样,因此,随机采样得到m个样本中,可能有的样本重复出现,而有的样本一次都
没有出现。n个训练集被并行化生成,对应可训练出n个基学习器。
是Bagging的一个扩展变体。RF在以决策树为基学习器构建 Bagging 集成的基础上,进一步在决
策树的训练过程中即随机采样一些特征(也就是列),这样的好处是可以避免一定的过拟合,更大
的增加每一颗决策树之间的差异性。
① 样本选取随机。同Bagging的随机采样数据集(bootstrap)。
② 节点选取随机。传统决策树在选择划分属性时是在当前结点的属性集合中选择一个最优属性
(根据信息增益、增益率等准则),而在RF中,对基决策树的每个结点,先从该结点的属性集合
中随机选择一个包含K个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参
数k控制了随机性的引入程度,推荐k=log(d)。
Boosting是一族可将弱学习器提升为强学习器的算法。Boosting 族算法包括AdaBoost、GBDT
(Gradient Boosting Decision Tree)、XGBoost、lightGBM。Boosting 族算法最著名的代表
是 AdaBoost(自适应提升)。
参考资料:GBDT算法详解_用xgboost实现gbdt-CSDN博客、
按顺序训练n个模型,在第时间i步的时候,训练一个弱模型,评估这个弱模型的误差,再把数据
重新采样一下,根据当前这个误差使得接下来的下一个模型会去关注我们预测不正确的那些样本,
然后迭代下去。
bagging降低方差:n个不那么稳定的模型,得到一个较为稳定的模型。
boosting降低偏差:n个比较弱的模型,得到一个比较强的模型。
bagging是独立的训练n个模型,而boosting是按顺序训练n个模型,后续模型依赖于之前的模型。
boosting基学习器之间存在强依赖关系 ,bagging基学习器之间不存在强依赖关系