• Machine Learning --常见集成算法实现总结与比较


    感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30676.html

    1.基本介绍

    主要思想 : 通过将多个学习器进行结合,获得比单一学习器更好的泛化能力。

    对个体学习器的要求:“好而不同”

    (1)个体学习器要有一定的准确性:单个学习器的准确度越高,集成学习器才可能越好。个体学习器不能太差,至少不能差于弱学习器。(弱学习器是指泛化性能略优于随机猜想的学习器)

    (2)个体学习器的多样性(差异性):学习器之间要有差异。

    常见集成学习器:

    下面的三种方法中,boosting各个学习器之间存在强依赖关系,各个学习器是串行方式生成的。bagging和random forest的各个学习器之间不存在强依赖关系,可以单独去训练(并行生成)。

    1.Boosting

    2.Bagging

    3.Rondom Forest

    学习器的结合策略

    结合的好处:(1)提升泛化性能 (2)降低陷入局部极小点的风险

    方法:

    1.平均法:对数值型输出,可以采用平均法。

    (a)简单平均法;

    (b)加权平均法两种。

    2.投票法:对于分类任务常常可以采用投票法

    (a)绝对多数投票法:只有当某标记票数过半才预测为该标记,否则拒绝预测;

    (b)相对多数投票法:将票数最多的标记作为预测值;

    (c)加权投票法:对不同学习器采取加权方法投票;

    3.学习法:通过一个学习器来训练,使各个学习器结合起来。例如stacking算法

    stacking算法:以初学习器的输出作为输入,训练学习器。

    2.Bagging与Rondom Forest

    一个基础想法:

    想要得到泛化能力强的集成,那么集成中使用的个体学习器应该尽可能的相互独立。一种可能的做法是对训练数据集进行采样,产生出若干个不同的子集,再从每个子数据集中训练出一个基学习器。由于这些基学习器的训练数据不同,获得的学习器之间的差异自然会比较大,通过组合这些学习器来实现较好的泛化能力。

    但是这样的做法对数据的利用不好,每个学习器只用到了很少的一部分数据,个体学习器的性能也会不好。

    2.1 Bagging

    Bagging方法是一种在原始数据集上通过有放回抽样训练分类器的方法。

    算法步骤

    假设训练集包含m个样本

    1.从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。

    2.重复步骤一T次,得到T个含m个样本的采样集,最终训练得到T个模型H1,H2,H3,...Ht

    3.将这T个学习器结合,得到集成学习器。

    结合方法 : Bagging通常对分类任务,采用简单投票法。对回归任务,采用简单平均法。

    注 : Bagging的这种自助采用方法,每个采用数据集大概用到了63.2%的样本,有36.8%的样本没有被采集到。这一部分数据可以用做验证集。

    2.2Random Forest

    随机森林是Bagging的一个扩展变体,随机森林是以决策树为基学习器来构建Bagging的一种方法。

    算法步骤

    假设训练集包含m个样本

    从m个样本中随机选取一个样本放入采用集中,再把该样本放回到初始数据集中,再次采用。重复m次采用,得到一个包含m个样本的采样集。用这个采样集来训练一个决策树。

    决策树划分属性时,先从当前结点的属性集合(假设包含d个属性)中随机选择K个属性,形成一个包含K个属性的集合,再从这k个属性中选出一个最优的属性用于划分。

    决策树形成的每个结点都按照步骤2来划分,直到该结点的所有训练样例都是同一类。

    注 : 这里不需要进行剪枝,因为两个随机过程保证了随机性,过拟合风险很小。

    优点:

    (1)随机森林思路简单,实现容易,计算开销小。

    (2)随机森林的往往很容易得到较好的预测结果,泛化能力好。

    (3)过拟合风险小

    (4)抗噪声能力强

    注:

    随机森林初始性能往往相对较差,这一点容易理解,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所下降。

    但是随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。(这么说的话,学习器的数量是需要足够多的)

    3.Boosting

    在分类问题中,通过改变训练样本的权重,串行地学习多个分类器,并组合提高分类性能。

    3.1AdaBoost算法

    是一种迭代算法,每轮迭代过程中会在训练数据集上产生一个新的分类器。在训练过程中,通过改变权值,重视那些上一轮被错分的样本。这样越难区分的样本在训练过程中会变得越来越重要。

    假设共有N个样本,假设训练M个分类器

    3.2训练过程

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    3.3优缺点

    优点:

    (1)是一种有很高精度的分类器

    (2)简单,不用做特征筛选

    (3)不容易发生overfitting

    缺点:

    (1)AdaBoost迭代次数也就是弱分类器数目不太好设定,可以使用交叉验证来进行确定。

    (2)数据不平衡导致分类精度下降。

    (3)训练比较耗时,每次重新选择当前分类器最好切分点。

    4.加法模型和前向分步算法

    加法模型(Additive Model)

    对一个加法模型

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    注:

    若是采用平方误差,那么实际上,优化的是当前模型在样本上的损失,优化的是损失,即寻找最好的βb(x,γ)eta b(x,gamma)βb(x,γ)使得损失最小。

    当采用指数损失函数的时候,前向分步算法和AdaBoot算法是等价的。

    5.提升树

    提升树是统计学习方法中性能最好的方法之一。提升方法实际应用采用加法模型和前向分步算法,采用决策树作为基函数的提升方法称为提升树

    提升树模型是决策树的加法模型 :

    机器学习--常见集成算法总结与比较

    算法
    提升树算法就是采用前向分步算法,和上面的前向分步算法的步骤基本一致

    机器学习--常见集成算法总结与比较

    6.梯度提升树(GBDT)

    当采用平方损失和指数损失的时候,每一步的优化是很简单的。但是对于一般的损失函数而言,每一步的优化并不容易。针对这个问题,解决办法就是采用梯度下降的方法来优化。

    注 :

    Adaboost和梯度提升的区别:

    1.Adaboost是基于样本权值更新

    2.Gradient Boost 是基于残差减小的梯度方向进行更新

    GBDT算法

    在GBDT中,假设我们前一轮得到的学习器是fm−1(x)

    那么本轮迭代的目的就是找到一个树,让本轮的损失最小。(还是优化损失)

    机器学习--常见集成算法总结与比较

    机器学习--常见集成算法总结与比较

    优点:

    1.可以灵活处理各种类型的数据,包括连续值和离散值。

    2.在相对少的调参时间情况下,预测的准确率也可以比较高。

    3.使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

    缺点:

    1)由于弱学习器之间存在依赖关系,难以并行训练数据。

  • 相关阅读:
    Integration Services 学习(4):包配置
    Integration Services 学习(3)
    AsyncTask的使用
    asp.net下实现支持文件分块多点异步上传的 Web Services
    wcf/web service 编码
    c# 接发邮件2
    Integration Services 学习
    使用AChartEngine画柱状图
    Cocos2d开发系列(五)
    灵活使用XMultipleSeriesRenderer设置自定义的轴标签
  • 原文地址:https://www.cnblogs.com/lihanlin/p/12657740.html
Copyright © 2020-2023  润新知