《西瓜书》集成学习

参考:https://github.com/datawhalechina/daily-interview/blob/master/AI%E7%AE%97%E6%B3%95/machine-learning/EnsembleLearning.md
集成学习由训练基学习器 + 基学习器结合 两步组成。基学习器的训练可以是提升算法,层层递进调整样本再训练下一个学习器,从而一步步减小偏差;也可以是重复放回的自助抽样方法,基于每部分样本来训练学习器。而结合的方法选择是基于要解决的问题类型,回归用平均法(包含加权平均),分类用投票法,也可以采用stacking来分层结合。
注:模型融合的方法很多就是根据RMSE来做加权平均。

一、认识集成学习

1.集成怎样被个体影响?

个体分类器的数目越多,集成的错误率越低。

2.目标:

找到尽可能多的“好而不同”的个体学习器。

  • 多:随着个体分类器的数目增多,集成的错误率将指数级下降。
  • 好:学习器的泛化性能尽可能强,具有“准确性”。
  • 不同:学习器之间具有差异,“多样性”。

【准确性与多样性的冲突】:个体学习器的准确性很高之后,要增加多样性就要牺牲其准确性。因为现实任务中,个体学习器都是基于同一个问题训练出来的,它们显然你不可能相互独立。

二、集成学习的类型

boosting和bagging的差异:前者串行训练,各基分类器之间有强依赖。后者分行训练,各基分类器之间无强依赖。前者的基分类器层层叠加,后面学习器是基于前面的分类器来调整样本分布,对分错的样本给予更多的关注,然后训练下一个学习器。

1.Boosting(强依赖)提升算法

【以AdaBoost为例】

(1)思路:

指定基学习器个数T,迭代计算指数损失函数,每一步都更新一个个体学习器的权重和样本分布,最终最小化指数损失函数。

  • 强依赖的原因:下一个个体学习器的样本分布是基于上一个个体学习器的训练结果(对上一个个体学习器分错的样本给予更高的权重),因此T个学习器之间依赖性很强。
(2)侧重点:

通过计算损失函数,来降低偏差。

(3)典型方法:

Adaboost、GBDT、XGBoost

2.Bagging(非强依赖)

Bootstrap aggregating,通过样本扰动(by bootstrap)增加学习器的多样性,减小方差,增强泛化性能

(1)思路:

自助采样(bootstrap sampling),基于每个采样集训练出一个学习器,再结合。其中,bootstrap sampling是用小样本采样的非参方法,是一种有放回的抽样。

  • 弱依赖的原因:自助采样能够保证样本之间的随机性,因此学习器之间的依赖性不强。
(2)侧重点:

自助抽样保证了样本的随机性,以降低方差。

(3)典型算法:Random Forest(RF)

通过样本扰动和属性扰动(by 从属性子集中随机选择最优属性)增加学习器的多样性,减小方差,增强泛化性能。多样性、效率和泛化能力都更优。

  • 样本扰动:袋装算法
  • 属性扰动:随即子空间算法

三、结合策略

  1. 平均法:数值型个体学习器,回归问题
  2. 投票法:分类型个体学习器,分类问题
  3. 学习法:Stacking
  • 适用情况:训练数据多的情况下
  • 思想:分层模型集成,如果是两层模型。第一层选择几个合适的基学习器,分别对样本进行训练,采用交叉验证或留一法,将每个基学习器得到的预测结果作为特征,加入训练集。然后进入第二层的训练,此时为了防止过拟合,倾向采用简单的模型。
  • 参考:https://blog.csdn.net/wstcjf/article/details/77989963

四、多样性

个体学习器的准确性越高,多样性越大,则集成越好。

1.多样性度量

个体分类器的两两相似性/不相似性:不合度量、相关系数、Q统计量、k统计量

2.多样性增强

再学习过程中引入随机性,以减小方差。

(1)数据样本扰动

  • 方法:采样法
  • 适用:不稳定基学习器(样本稍加变化就会导致学习器有显著变化),如决策树、神经网络。

(2)输入属性扰动

  • 方法:抽取属性子集,基于每个属性自己训练一个基学习器
  • 适用:稳定基学习器(样本变化对学习器没有显著影响,如线性学习器、SVM、朴素贝叶斯、k近邻学习器),有大量属性且冗余属性多

(3)输出表示扰动

(4)算法参数扰动

五、辨证看待集成学习

集成包含多个个体学习器,虽然个体学习器有较好的可解释性,但是集成仍然是黑箱模型(无法确保模型准确定,并且无法解释结果中每一个节点的功能)。可以尝试将集成转化为单模型、从集成中抽取符号规则等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值