文章目录
- [1 基础原理](#1 基础原理)
- [2 串行------Boosting](#2 串行——Boosting)
- [3 并行------Bagging与随机森林](#3 并行——Bagging与随机森林)
-
- [3.1 Bagging](#3.1 Bagging)
- 3.2随机森林
1 基础原理
之前我们介绍了许多单个的机器学习算法,包括决策树,神经网络,贝叶斯分类器
但以上种种都是单个学习算法
接下来我们介绍集成学习,即先产生一组"个体学习器"(即我们上面讲到的决策树之类的)再用某种策略将他们结合起来,就是集成的过程。
集成对应两种
- 集成中只包括同类型的个体学习器,比如对于决策树集成中都是决策树,对于神经网络集成都是神经网络,这样的集成是"同质"的,同质中的个体学习器也称为"基学习期",学习算法叫做"基学习算法"
- 集成也可以包括不同类型的个体学习器,这样的集成是"异质"的,异质的学习期由不同的学习算法组生成,这时候不再有基学习算法,相应的,个体学习器一般称为组件学习器
我们期望多个学习集成产生更好的效果,通俗来讲就是1+1>2的效果
为了达到这个效果,个体学习器应该"好"而"不同"
根据个体学习器的生成方式,目前集成学习有两大类方法
即个体学习器间存在强依赖关系,必须串行生成序列的方法,代表有Boosting
个体学习器之前不存在强依赖关系,可同时生成的并行化方法,代表有Bagging与随机森林
2 串行------Boosting
Boosting算法是一类集成学习(ensemble learning)方法,旨在通过结合多个弱分类器来构建一个强分类器。这些弱分类器通常是简单的模型,例如决策树,它们在某些方面表现不佳,但当它们结合在一起时,可以产生更强大的模型。
Boosting算法的工作方式是按顺序训练一系列的弱分类器,每个弱分类器都试图纠正前一个分类器的错误。训练过程中,对错误分类的样本给予更多的关注,以便下一个分类器能够更好地学习这些样本。最终,所有弱分类器的预测结果通过加权求和或投票等方式结合起来,形成最终的集成模型。
最常见的是AdaBoost算法
AdaBoost(Adaptive Boosting)是一种集成学习方法,旨在通过组合多个弱分类器来构建一个强分类器。它是Freund和Schapire于1996年提出的,是Boosting算法中最早和最简单的一种。
AdaBoost的工作原理如下:
- 初始化训练数据集的权重,使每个样本的权重相等。
- 迭代训练过程中,对于每个迭代轮次:
- 训练一个弱分类器(例如,单层决策树或者称为决策树桩)。
- 根据弱分类器的表现调整样本的权重,增加被错误分类的样本的权重,减少被正确分类的样本的权重。
- 最终,将所有弱分类器的预测结果通过加权求和(或者投票)的方式结合起来,得到最终的强分类器。
AdaBoost的关键在于不断调整样本的权重,使得每个新的分类器都集中在前一个分类器分错的样本上,从而提高整体的分类性能。由于AdaBoost侧重于错误分类的样本,因此它对噪声数据和异常值比较敏感。
AdaBoost的优点包括:
- 简单易实现,不需要复杂的参数调整。
- 可以与各种分类器结合使用,如决策树桩、神经网络等。
- 在处理二分类问题时表现良好。
然而,AdaBoost也有一些缺点,包括:
- 对噪声和异常值敏感,容易过拟合。
- 在处理多类别分类问题时需要进行修改和调整。
- 对数据不平衡和高维特征空间的处理能力有限。
总的来说,AdaBoost是一种强大的集成学习方法,在许多机器学习问题中表现出色。
3 并行------Bagging与随机森林
想要泛化性加强,我们集成学习的个体学习器应尽可能独立,虽然"独立"在现实中不容易做到,但可以使得基学习器尽可能不同,给定一个训练数据集
- 一种可能的做法是对训练样本进行采样,产生若干不同的子集,再从每一个训练集中训练出一个基学习器,这样由于训练数据集不同我们获得的基学习器有较大的不同
- 但是由于每个个体学习器在训练过程中只用到了一部分,单个效果可能不太好了,为了增大数据集,我们可以考虑交叉采样子集
3.1 Bagging
Bagging(Bootstrap Aggregating)是一种集成学习方法,旨在通过训练多个相互独立的分类器,并将它们的预测结果进行组合来改善分类的准确性。Bagging的核心思想是通过自助采样(bootstrap sampling)和投票(voting)的方式减少方差,提高模型的稳定性和泛化能力。
Bagging的工作流程如下:
- 从原始训练集中使用自助采样方法(即有放回地随机抽样)生成多个子训练集。
- 使用每个子训练集训练一个独立的基分类器(通常使用高方差的模型,如决策树)。
- 对于分类问题,通过投票(多数表决)的方式获得最终的预测结果;对于回归问题,通过平均基分类器的预测结果来获得最终的预测值。
Bagging的优点包括:
- 通过降低方差,提高了模型的泛化能力和稳定性。
- 可以并行化处理,因为每个基分类器可以独立训练。
- 不容易受到过拟合的影响,对于高方差的模型表现较好。
Bagging的缺点包括:
- 基分类器之间的独立性要求较高,如果基分类器之间存在较强的相关性,则Bagging效果可能会下降。
- 由于每个基分类器都使用了部分样本进行训练,因此可能会导致模型整体性能略有下降。
随机森林(Random Forest)就是一种基于Bagging思想的集成学习算法,它使用了多棵决策树作为基分类器,并通过投票的方式进行预测。随机森林在实际应用中广泛使用,通常具有较好的分类和回归性能。
3.2随机森林
随机森林(Random Forest)是一种基于决策树的集成学习方法,通过构建多棵决策树来改善单棵决策树的预测性能。随机森林在许多机器学习问题中都表现出色,特别是在处理高维数据和大规模数据集时效果显著。
随机森林的主要特点和工作原理包括:
-
随机选择特征:在每棵决策树的训练过程中,随机选择一部分特征进行训练,而不是全部特征。这种随机性有助于减少特征之间的相关性,提高模型的多样性。
-
自助采样:对于每棵决策树的训练数据集,采用自助采样(bootstrap sampling)的方式从原始训练集中有放回地抽取样本。这样可以保证每棵决策树的训练集是不同的,增加了模型的多样性。
-
多棵决策树的投票:对于分类问题,随机森林通过多数投票的方式来确定最终的分类结果;对于回归问题,通过平均多棵决策树的预测结果来得到最终的预测值。
随机森林的优点包括:
- 能够处理高维数据和大规模数据集,不容易受到过拟合的影响。
- 具有较高的准确性和稳定性,通常表现优于单棵决策树。
- 能够评估特征的重要性,有助于理解数据和特征选择。
随机森林的缺点包括:
- 对于某些数据集和问题,随机森林可能会过于复杂,导致模型过拟合。
- 由于每棵决策树都是独立训练的,因此难以解释单个决策树的预测过程。
总的来说,随机森林是一种强大的集成学习方法,在许多机器学习问题中都表现出色。