📕参考:ysu老师课件+西瓜书 +期末复习笔记
1.集成学习的基本概念
集成学习(ensemble learing)通过构建并结合多个学习器来完成学习任务。
有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
理解:集成学习是一种机器学习方法,其核心思想是将多个学习器(弱学习器)集成在一起,以达到比单个学习器更好的性能。通过组合多个学习器的预测结果,集成学习可以提高整体的泛化能力和稳定性,从而在复杂的任务中取得更好的性能。
集成学习的主要目标是通过组合多个模型,弥补单个模型的局限性,减少过拟合,并提高模型的鲁棒性。
优缺点
集成学习的主要优缺点:
优点:
提高泛化能力: 集成学习能够减少模型的方差,提高模型的泛化能力。通过组合多个学习器,可以弥补单个学习器的局限性,提高整体性能。
降低过拟合风险: 通过在不同的子集上训练不同的学习器,集成学习降低了过拟合的风险。这对于处理复杂的数据和噪声较大的情况非常有用。
提高鲁棒性: 集成学习对数据的变化和噪声具有一定的鲁棒性。由于多个学习器的集成,模型更能应对不同情况下的变化。
适用于多样的学习器: 集成学习可以利用各种不同类型的学习器,包括决策树、神经网络、支持向量机等。这使得它在不同类型的问题上都有很好的适应性。
易于并行化: 集成学习的训练过程通常可以并行化,因为每个学习器可以独立地训练。这有助于提高训练效率。
缺点:
增加计算开销: 集成学习通常需要训练和集成多个学习器,这可能导致较大的计算开销,特别是在大规模数据集和复杂模型的情况下。
复杂性: 集成学习的模型通常相对复杂,这使得它们不太容易解释。在一些应用场景中,解释性可能是一个重要的考虑因素。
对参数调整敏感: 集成学习的性能通常对参数的选择和调整比较敏感。需要进行仔细的参数调整以达到最佳性能。
不适用于所有问题: 集成学习并不总是对所有类型的问题都有效。在一些简单的问题上,单个学习器可能已经足够好,而不需要引入集成学习的复杂性。
可能受到噪声的影响: 如果训练数据中存在大量噪声,集成学习可能会受到噪声的影响,从而导致模型性能下降。
2.集成学习方法
根据个体学习器的生成方式,目前的集成学习方法大致分为两大类
1.个体学习器间存在强依赖关系、必须串行生成的序列化方法:Boosting(提升法)。
2.个体学习器间不存在强依赖关系、可同时生成的并行化方法:Bagging(装袋法)和“随机森林”(Random Forest)。
1.Boosting(提升法)
Boosting是一族可以将弱学习器提升为强学习器的算法。
算法思路:通过迭代训练一系列弱学习器(通常是决策树或其他简单模型),每一轮都对前一轮的模型进行修正,以提高整体模型的性能。
- 训练基学习器:先从初始训练集训练出一个基学习器
- 更新样本权重:根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多的关注
- 重复迭代:基于调整后的样本训练下一个基学习器,一直重复以上操作,直到基学习器数目达到事先指定的值T
- 集成学习:最终将这T个基学习器进行加权结合
特点:
1.个体学习器之间存在强依赖关系
2.串行生成
3.每次调整训练数据的样本分布
2.Bagging(装袋法)
这一类方法的核心思想是通过对训练集进行有放回的抽样(Bootstrap抽样),构建多个独立的学习器,然后将它们的预测结果进行平均或投票。著名的算法包括随机森林(Random Forest)。
Bagging(Bootstrap Aggregating)算法的过程包括以下步骤:
Bootstrap抽样: 从原始训练集中有放回地抽取若干个样本,构成一个新的训练子集。这个过程可以重复多次,生成多个不同的子集。
训练独立的学习器: 对每个生成的子集使用相同的学习算法(可以是决策树、神经网络等),独立地训练一个学习器。由于每个子集都是通过Bootstrap抽样得到的,这些学习器之间具有一定的差异性。
集成学习: 将所有独立学习器的预测结果进行集成。对于分类问题,可以采用投票的方式,选择获得最多票数的类别作为最终预测结果;对于回归问题,通常采用平均值或加权平均值。
问题:Bagging(Bootstrap Aggregating)算法中的弱学习器必须一样吗?
在Bagging中,弱学习器通常可以是不同的,即它们可以是同一种类型的学习器,也可以是不同种类的学习器。核心思想是通过对训练集进行Bootstrap抽样,得到多个略有不同的训练子集,然后在这些子集上独立地训练弱学习器,最终进行集成。
弱学习器的不同性质可以增加集成模型的多样性,从而提高整体模型的泛化能力。这样的多样性可以通过使用不同的学习算法、不同的参数设置或者在特征选择上的差异来实现。在实际应用中,常常选择同一种学习算法,但在不同的子集上进行训练,以获得差异化的弱学习器。
3.随机森林(Random Forest)
随机森林(Random Forest)是一种基于Bagging思想的集成学习算法,它通过构建多个决策树,并对它们的输出进行平均或投票来提高整体模型的性能。
随机森林算法流程:
Bagging过程: 从原始训练集中使用Bootstrap抽样,生成多个不同的训练子集。(随机抽样)
构建决策树: 在每个训练子集上独立地训练一个决策树。与传统的决策树不同,随机森林是在每个节点上随机选择一部分特征进行划分的。
集成决策树: 将所有独立训练的决策树的输出进行平均(回归问题)或投票(分类问题),得到最终的随机森林模型。
优缺点:
随机森林的优点包括:
降低过拟合风险: 通过随机选择特征子集,每个决策树都在不同的特征子空间上进行训练,降低了模型的方差,有助于防止过拟合。
提高泛化性能: 由于集成了多个模型的意见,随机森林通常能够在不同类型的数据集上取得很好的泛化性能。
对于高维数据有效: 随机森林对于高维数据的处理相对较好,因为每个决策树只使用部分特征。
易于并行化: 由于每棵树可以独立构建,随机森林的训练过程容易并行化,适合在大规模数据集上使用。
随机森林的缺点:
不易解释: 随机森林由多个决策树组成,每个树的决策过程相对独立,导致整个模型的解释性较差。对于一些应用场景,特别是需要理解模型内部逻辑的情况下,随机森林可能不是最佳选择。
计算开销: 随机森林包含多个决策树,因此在训练和预测时可能需要较大的计算资源。尤其在树的数量很大的情况下,可能会对性能产生一定的影响。
对于高维稀疏数据效果较差: 随机森林在处理高维稀疏数据(例如文本数据)时,可能不如其他算法表现出色。这是因为在随机选择特征时,可能会错过一些关键的特征。
样本不平衡: 当数据集存在严重的类别不平衡时,随机森林可能对多数类别的预测性能较好,而对少数类别的预测性能较差。
3.结合策略
1.平均法
(1)算数平均法
(2)加权平均法
一般个体学习器性能相差较大时用加权平均法,性能相近时用简单平均法。
2.投票法
(1)绝对多数投票法:即若某lable得票过半数,就预测为该lable,否则拒绝预测。
(2)相对多数投票法(少数服从多数):即预测为得票最多的标记。
若同时有多个标记获最高票,则从中随机选取一个。
(3)加权投票法:和加权平均法一样,每个基学习器的分类票数与权重相乘,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。
3.学习法
代表:Stacking
Stacking算法的主要思想是利用弱学习器的学习结果作为输入,将初始样本的标记当做样例标记,重新训练新的学习器。
在这种情况下,将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。