计算机系统应用教程网站

网站首页 > 技术文章 正文

机器学习的利器——集成算法 集成算法分为哪两大类

btikc 2024-09-27 01:05:40 技术文章 14 ℃ 0 评论

最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们。


集成算法核心思想


集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就是通俗意义上的三个“臭皮匠”顶个“诸葛亮”。

关注问题:1、如何产生一组“个体学习器”?

2、如何利用某种策略将“个体学习器”结合起来?


集成算法种类


根据个体学习器的生成方式,最常用的集成算法可以分为两大类,即个体学习器间存在强依赖关系(多项式学习算法)必须串行生成的序列化算法【Boosting方法,代表算法:Adaboost算法Boosting tree】,以及个体学习器之间不存在强依赖关系,通过并行生成的集成算法【bagging方法,代表算法:随机森林(Randon Forest)


Bagging


1、算法原理:

  • 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)
  • 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
  • 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2、采样策略

自助采样法,有放回抽样n次得到样本量为n的训练样本集用于每次基分类器的训练

3、基学习器组合策略

对于分类问题,基分类器采用投票法得到结果,对于回归问题,通过对基分类器的预测值取平均值得到结果。

4、算法步骤:


4、随机森林

4.1算法原理

以决策树作为基学习器构建bagging集成,并在决策树的训练过程中引入随机属性选择。

4.2随机性:

随机森林的随机性体现在样本的随机性和特征选择的随机性


Boosting


1、算法原理:

通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提升分类性能。大多数的提升方法都是改变训练数据的概率分布(权值),针对不同的训练数据分布调用弱分类算法学习一系列弱分类器。

2、Adaboost

2.1算法原理:

  • 提高前一轮弱分类器错误分类样本的权值,降低正确分类样本的权值
  • 弱分类器的组合,采用加权多数表决的方法,具体地,加大分类误差小的弱分类器的权值,使其在表决中起大作用,减小分类误差大的弱分类器权值

2.2算法步骤:

2.3机器学习视角的解释:

ModelSet:加法模型,基学习模型的线性组合

LossFunction:指数损失函数【分类问题】

优化策略:前向分步算法

3、提升树

3.1核心思想

以分类树或回归树为基本分类器的提升方法,加法模型,与前向分步算法,以决策树为基分类器的提升方法,串联决策树模型,第一个决策树拟合具体数学,以后的决策树拟合前一个决策树的残差。

3.2算法步骤:

3.3机器学习视角的解释:

ModelSet:加法模型,基学习模型的线性组合

LossFunction:指数损失函数【分类问题】、平方误差损失函数【回归问题】

优化策略:前向分步算法


常见面试问题


1、bagging与boosting的区别

  • 样本选择上:Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
  • 样例权重:Bagging:使用均匀取样,每个样例的权重相等Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
  • 预测函数:Bagging:所有预测函数的权重相等。Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
  • 并行计算:Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

2、随机森林与GDBT(提升树)的区别:

  • 随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
  • 组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
  • 组成随机森林的树可以并行生成;而GBDT只能是串行生成。
  • 对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
  • 随机森林对异常值不敏感;GBDT对异常值非常敏感。
  • 随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。
  • 随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表