机器学习面试总结 - [集成学习概述]

集成学习通过训练多个弱学习器并采用特定结合策略,形成强学习器,提高性能。常见弱学习器包括决策树和神经网络,常用框架有boosting、bagging和stacking。结合策略在回归任务中常采用平均法,在分类任务中使用投票法,如相对多数投票和加权投票。
摘要由CSDN通过智能技术生成

1、集成学习概述

集成学习是一种机器学习范式,它通过训练若干个弱学习器,然后使用一定的结合策略,将这些弱学习器组合起来,最终形成强学习器,获得更好的性能。

也就是说,集成学习中有两个主要的问题需要解决:第一个是如何得到若干个弱学习器,第二是如何选择一个结合策略,将这些弱学习器组合成一个强学习器。

2、集成学习之弱学习器(基本模型)

上一节我们提到,集成学习方法的第一个问题就是如何得到若干个弱学习器,这里我们有两种选择。

第一种是所有的弱学习器都是同一种,或者说是同质的,比如都是决策树弱学习器,或者都是神经网络弱学习器;
另一种是所有的弱学习器不全是同一种,或者说是异质的,比如有一个分类任务,我们在训练集上训练一个支持向量机弱学习器,一个逻辑回归弱学习器和一个朴素贝叶斯弱学习器,再通过某种结合策略确定最终的分类强学习器。

目前来说,同质弱学习器的应用是最广泛的,一般我们常说的集成学习方法都是指同质弱学习器。而同质弱学习器中使用最多的模型是CART决策树和神经网络。同质弱学习器中的弱学习器按照是否存在依赖关系划分为两类,第一类是弱学习器之间存在强依赖关系,一系列弱学习器基本都需要串行生成,代表算法是boosting系列算法,第二类是弱学习器之间不存在依赖关系,一系列弱学习可以并行生成。代表算法是bagging系列算法。

另外注意,我们对弱学习器的选择应该与我们聚合这些模型的方式相一致。如果我们选择的是具有高偏差低方差的弱学习器,那么我们应该倾向于选择一种减小偏差的聚合方式,比如boosting方法;而如果我们选择的是低偏差高方差的弱学习器,那么应该倾向于选择一种减小方差的聚合方式,比如bagging方法;
在这里插入图片描述

3、集成学习之常用框架(元算法)

组合弱学习器的元算法主要有三种:

  • boosting:该方法通常考虑的是同质分类器,它以一种高度自适应的方法顺序地学习这些弱学习器,每个弱学习器都依赖前面的弱学习器,最后按照某种确定性的策略将它们组合起来。
  • bagging:该方法通常考虑的是同质分类器,相互独立并行地学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
  • stacking:该方法通常考虑的是异质分类器,它并行地学习弱分类器,并训练一个元模型将它们组合起来,以不同弱学习器的输出结果作为元模型的输入,得到最终的预测结果。

接下来将更为详细地这三种方法:
(1)boosting算法
boosting算法的基本原理可以采用下图概述:
在这里插入图片描述
从图中可以看出,boosting算法的工作机制是先对训练集中的样本赋初始权重,然后使用带初始权重的样本训练一个弱学习器1,根据弱学习器1的学习误差率表现来调整样本的权重,使得弱学习器1学习误差率高的样本的权重变高,从而使得这些误差率高的样本在后面的弱学习器2中受到更多的重视。然后基于调整权重后的训练集训练弱学习器2。如此重复进行,直到弱学习器的数量达到指定的数量T,将这T个弱学习器通过结合策略进行组合,得到最终的强学习器。

boosting系列算法主要有自适应提升算法adaboost和梯度提升算法gradient boosting,梯度提升算法又包括梯度提升树(GBDT)和Xgboost算法。

(2)bagging算法
bagging算法和boosting算法不同,它的弱学习器之间没有依赖关系,所以可以独立并行的生成,其原理如下图所示:
在这里插入图片描述
从上图可以看出,bagging算法的弱学习器的训练样本是通过随机采样得到的,通过T次采样,可以得到T个采样集,然后在每个采样集上训练一个弱学习器,最后通过某种结合策略将这些弱学习器组合起来,形成强学习器。

这里的随机采样一般使用的是自主采样(Boostrap Sampling),即每次从原始训练集中随机选择一个样本,将该样本放入采样集,接着把该样本放回,也就是说下次采样时仍然有可能采到该样本,这样采集m次,可以得到有m个样本的采样集,由于是随机采样,所以采样集和原始数据集不同,和其他采样集也是不同的,这样在采样集上进行训练就可以得到不同的弱学习器。

随机森林是bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴。

(3)stacking算法
正如上文已经提到的,stacking 的概念是学习几个不同的弱学习器,并通过训练一个元模型来组合它们,然后基于这些弱模型返回的多个预测结果输出最终的预测结果。

因此,为了构建 stacking 模型,我们需要定义两个东西:想要拟合的 L 个学习器以及组合它们的元模型。
例如,对于分类问题来说,我们可以选择 KNN 分类器、logistic 回归和SVM 作为弱学习器,并决定学习神经网络作为元模型。然后,神经网络将会把三个弱学习器的输出作为输入,并返回基于该输入的最终预测。
在这里插入图片描述

4、集成学习之结合策略

在上面几节里面我们主要关注于学习器,提到了学习器的结合策略但没有细讲,本节就对集成学习之结合策略做一个总结。我们假定我得到的 T T T个弱学习器是 { h 1 , h 2 , . . . , h T } \{h_1,h_2,...,h_T\} { h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Albert_YuHan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值