感谢作者分享-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)由于弱学习器之间存在依赖关系,难以并行训练数据。