boosting相关算法整理

Boosting 和 Bagging

Boosting:通过将一些表现效果一般的模型通过特定方法进行组合来获得一个表现效果较好的模型。

 

Bagging 是通过多次抽取数据,产生多个训练集,训练多个模型,最终在某个任务进行投票,每一个基准模型都是同样重要。

 

Adaboost:

针对boosting中如何训练

1弱分类器的组合

2改变样本的权值和分布

两个问题作出回答

1.Adaboost采取加权多数表决的方法,加大分类误差率小的弱分类器的权重,使其在最终的分类器表决中起较大作用,减小分类误差率大的弱分类器的权重,使其在表决中起较小的作用。

2.提高那些被前一轮弱分类器错误分类样本的权值,降低那些被前一轮分类器正确分类的样本的权值

 

GBDT:

  1. 使用cart决策树,去不断拟合残差项。组合出来的cart树就是GBDT
  2. 输入随着前一轮分类器的预测,而改变后一轮的输入,将残差作为预测值。

boosting相关算法整理_第1张图片

 

 

 

Xgboost:

对GBDT实现上的优化:

1目标函数采用二阶泰勒展开

2 加上惩罚项

boosting相关算法整理_第2张图片

 

 

 

xgboost与LightGBM的区别

1.切分算法(切分点的选取)

2.占用的内存更低,只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8

3.LightGBM直接支持类别特征

4.决策树生长策略不同

     XGBoost采用的是带深度限制的level-wise生长策略。level-wise过一次数据可以能够同时分裂同一层的叶子,容易进行多线程优化,不容易过拟合;但不加区分的对待同一层叶子,带来了很多没必要的开销(实际上很多叶子的分裂增益较低,没必要进行搜索和分裂)

       LightGBM采用leaf-wise生长策略,每次从当前所有叶子中找到分裂增益最大(数据量最大)的一个叶子,进行分裂,如此循环;但会生长出比较深的决策树,产生过拟合(因此LightGBM在leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合)

boosting相关算法整理_第3张图片

 

 

 

你可能感兴趣的:(AI,算法,机器学习)