【机器学习】集成学习相关概念

【机器学习】集成学习

简介

集成学习是机器学习的一种训练思路,而非具体的算法。其核心思路就是“人多力量大”——通过构建并结合多个学习器完成学习任务。
在这里插入图片描述
集成学习中的个体学习器可以是同种类型(同质),也可以是不同类型(异质)。两种情况下的个体学习器也可以分别被称作基学习器组件学习器。个体学习器要求”好而不同“(有一定的准确性,学习器之间要有差异性)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csCxXLHD-1598267758248)(C:\Users\1ceee\Desktop\2.png)]
但事实上,个体学习器的准确性与差异性本身存在冲突。一般的,准确性很高之后增加差异性就要牺牲准确性。如何产生并结合”好而不同“的个体学习器是集成学习研究的核心。

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

  1. 个体学习器之间强依赖关系,必须串行生成的序列化方法(Boosting为代表)
  2. 个体学习器可同时生成的并行化方法(Bagging为代表)

Boosting

Boosting的工作机制是:先从初始训练集训练出一个基学习器,再根据基学习器表现对训练样本分布进行调整,使得先前基学习器做错的样本得到更多关注,然后基于调整后的样本分布训练下一个基学习器,如此重复进行,直至基学习器数目达到事先指定的值,然后将所有基学习器加权结合

AdaBoost

以二分类任务为例,算法思路如下:

  1. 初始化训练样本的权重,每个样本权值相同

  2. 进行 T T T轮迭代,每一轮迭代 t t t中:

    a.使用具有权值分布 D t D_t Dt的训练集学习得到基学习器 h t ( x ) h_t(\boldsymbol x) ht(x)

    b.计算基学习器在训练集上的分类误差率 e t e_t et(在这里就是误分类的样本权值之和)

    c.计算 h t ( x ) h_t(\boldsymbol x) ht(x)的系数 α t \alpha_t αt,该系数衡量学习器在最终学习器所占的权重
    α t = 1 2 l n 1 − e t e t \alpha_t=\frac{1}{2}ln\frac{1-e_t}{e_t} αt=21lnet1et
    e t ≤ 1 2 e_t\leq \frac{1}{2} et21是, α t ≥ 0 \alpha_t\geq0 αt0,并且随着 e t e_t et增大而减小,说明分类误差率越大的基学习器在最终学习器中的权重越小。

    d.更新权重

  3. 组合基学习器

GBDT(Gradient Boosting Decision Tree)

GBDT算法原理以及实例理解

Bagging与随机森林

Bagging

Bagging的基本流程:使用bootstrap sampling从数据集中取出 T T T个包含 m m m个训练样本的训练集,然后基于每个训练集训练出一个基学习器,然后将这些基学习器结合
在这里插入图片描述
对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法。

Bagging能不经修改的直接用于多分类、回归等任务

随机森林

随机森林是Bagging的一个变体,其构造过程如下:

  1. Bootstrap sampling选取N个样本,以后用这N个样本训练决策树
  2. 当决策树节点需要分裂时,从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从中选择一个最优属性用于划分
  3. 决策树生成过程中每个节点都要按照步骤2来分裂,直到不能够再分裂为止
  4. 按照1-3建立大量决策树,就构成了随机森林

整个过程是不需要剪枝的,因为样本的随机采样和属性的选取都确保了随机性,不会产生过拟合

Bagging和Boosting的区别:

样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

并行计算:

Bagging:各个预测函数可以并行生成

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

参考

周志华《机器学习》

集成学习之Adaboost算法原理小结

GBDT算法原理以及实例理解

Bagging和Boosting 概念及区别

猜你喜欢

转载自blog.csdn.net/i0o0iW/article/details/108205840