0
点赞
收藏
分享

微信扫一扫

npm run build小技巧

boomwu 03-14 11:00 阅读 2

文章目录

1 基础原理

之前我们介绍了许多单个的机器学习算法,包括决策树,神经网络,贝叶斯分类器

但以上种种都是单个学习算法

接下来我们介绍集成学习,即先产生一组“个体学习器”(即我们上面讲到的决策树之类的)再用某种策略将他们结合起来,就是集成的过程。

集成对应两种

  1. 集成中只包括同类型的个体学习器,比如对于决策树集成中都是决策树,对于神经网络集成都是神经网络,这样的集成是“同质”的,同质中的个体学习器也称为“基学习期”,学习算法叫做“基学习算法”
  2. 集成也可以包括不同类型的个体学习器,这样的集成是“异质”的,异质的学习期由不同的学习算法组生成,这时候不再有基学习算法,相应的,个体学习器一般称为组件学习器

我们期望多个学习集成产生更好的效果,通俗来讲就是1+1>2的效果

为了达到这个效果,个体学习器应该“好”而“不同”

根据个体学习器的生成方式,目前集成学习有两大类方法

即个体学习器间存在强依赖关系,必须串行生成序列的方法,代表有Boosting

个体学习器之前不存在强依赖关系,可同时生成的并行化方法,代表有Bagging与随机森林

2 串行——Boosting

Boosting算法是一类集成学习(ensemble learning)方法,旨在通过结合多个弱分类器来构建一个强分类器。这些弱分类器通常是简单的模型,例如决策树,它们在某些方面表现不佳,但当它们结合在一起时,可以产生更强大的模型。

Boosting算法的工作方式是按顺序训练一系列的弱分类器,每个弱分类器都试图纠正前一个分类器的错误。训练过程中,对错误分类的样本给予更多的关注,以便下一个分类器能够更好地学习这些样本。最终,所有弱分类器的预测结果通过加权求和或投票等方式结合起来,形成最终的集成模型。

最常见的是AdaBoost算法

AdaBoost(Adaptive Boosting)是一种集成学习方法,旨在通过组合多个弱分类器来构建一个强分类器。它是Freund和Schapire于1996年提出的,是Boosting算法中最早和最简单的一种。

AdaBoost的工作原理如下:

  1. 初始化训练数据集的权重,使每个样本的权重相等。
  2. 迭代训练过程中,对于每个迭代轮次:
    • 训练一个弱分类器(例如,单层决策树或者称为决策树桩)。
    • 根据弱分类器的表现调整样本的权重,增加被错误分类的样本的权重,减少被正确分类的样本的权重。
  3. 最终,将所有弱分类器的预测结果通过加权求和(或者投票)的方式结合起来,得到最终的强分类器。

AdaBoost的关键在于不断调整样本的权重,使得每个新的分类器都集中在前一个分类器分错的样本上,从而提高整体的分类性能。由于AdaBoost侧重于错误分类的样本,因此它对噪声数据和异常值比较敏感。

AdaBoost的优点包括:

  • 简单易实现,不需要复杂的参数调整。
  • 可以与各种分类器结合使用,如决策树桩、神经网络等。
  • 在处理二分类问题时表现良好。

然而,AdaBoost也有一些缺点,包括:

  • 对噪声和异常值敏感,容易过拟合。
  • 在处理多类别分类问题时需要进行修改和调整。
  • 对数据不平衡和高维特征空间的处理能力有限。

总的来说,AdaBoost是一种强大的集成学习方法,在许多机器学习问题中表现出色。

3 并行——Bagging与随机森林

想要泛化性加强,我们集成学习的个体学习器应尽可能独立,虽然“独立”在现实中不容易做到,但可以使得基学习器尽可能不同,给定一个训练数据集

  • 一种可能的做法是对训练样本进行采样,产生若干不同的子集,再从每一个训练集中训练出一个基学习器,这样由于训练数据集不同我们获得的基学习器有较大的不同
  • 但是由于每个个体学习器在训练过程中只用到了一部分,单个效果可能不太好了,为了增大数据集,我们可以考虑交叉采样子集

3.1 Bagging

Bagging(Bootstrap Aggregating)是一种集成学习方法,旨在通过训练多个相互独立的分类器,并将它们的预测结果进行组合来改善分类的准确性。Bagging的核心思想是通过自助采样(bootstrap sampling)和投票(voting)的方式减少方差,提高模型的稳定性和泛化能力。

Bagging的工作流程如下:

  1. 从原始训练集中使用自助采样方法(即有放回地随机抽样)生成多个子训练集。
  2. 使用每个子训练集训练一个独立的基分类器(通常使用高方差的模型,如决策树)。
  3. 对于分类问题,通过投票(多数表决)的方式获得最终的预测结果;对于回归问题,通过平均基分类器的预测结果来获得最终的预测值。

Bagging的优点包括:

  • 通过降低方差,提高了模型的泛化能力和稳定性。
  • 可以并行化处理,因为每个基分类器可以独立训练。
  • 不容易受到过拟合的影响,对于高方差的模型表现较好。

Bagging的缺点包括:

  • 基分类器之间的独立性要求较高,如果基分类器之间存在较强的相关性,则Bagging效果可能会下降。
  • 由于每个基分类器都使用了部分样本进行训练,因此可能会导致模型整体性能略有下降。

随机森林(Random Forest)就是一种基于Bagging思想的集成学习算法,它使用了多棵决策树作为基分类器,并通过投票的方式进行预测。随机森林在实际应用中广泛使用,通常具有较好的分类和回归性能。

3.2随机森林

随机森林(Random Forest)是一种基于决策树的集成学习方法,通过构建多棵决策树来改善单棵决策树的预测性能。随机森林在许多机器学习问题中都表现出色,特别是在处理高维数据和大规模数据集时效果显著。

随机森林的主要特点和工作原理包括:

  1. 随机选择特征:在每棵决策树的训练过程中,随机选择一部分特征进行训练,而不是全部特征。这种随机性有助于减少特征之间的相关性,提高模型的多样性。

  2. 自助采样:对于每棵决策树的训练数据集,采用自助采样(bootstrap sampling)的方式从原始训练集中有放回地抽取样本。这样可以保证每棵决策树的训练集是不同的,增加了模型的多样性。

  3. 多棵决策树的投票:对于分类问题,随机森林通过多数投票的方式来确定最终的分类结果;对于回归问题,通过平均多棵决策树的预测结果来得到最终的预测值。

随机森林的优点包括:

  • 能够处理高维数据和大规模数据集,不容易受到过拟合的影响。
  • 具有较高的准确性和稳定性,通常表现优于单棵决策树。
  • 能够评估特征的重要性,有助于理解数据和特征选择。

随机森林的缺点包括:

  • 对于某些数据集和问题,随机森林可能会过于复杂,导致模型过拟合。
  • 由于每棵决策树都是独立训练的,因此难以解释单个决策树的预测过程。

总的来说,随机森林是一种强大的集成学习方法,在许多机器学习问题中都表现出色。

举报

相关推荐

0 条评论