Xgboost集成算法与Adaboost算法概述
文章目录
- Xgboost集成算法与Adaboost算法概述
- (Ⅰ)Xgboost的基本原理:
- 基本原理:
- **项的权值公式**:
- 目标函数:
- 最优解函数:
- 采用集成的思想:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190808162544353.jpg)k为决策树编号。
- (Ⅱ)集成思想的提升算法--xgboost算法:
- (01)加入正则化惩罚项——防止过拟合:
- (02)得到新的目标函数:
- (03)引入泰勒展开式对(△)式处理:
- (04)样本遍历→叶子遍历,得到下式:
- (05)对Obj(t)对Wi进行求偏导,并且令偏导等于0,得到Wj值:
- (06)并将Wj带回原目标函数,得到最终目标函数关系Obj(λ,γ,t):
- (Ⅲ)xgboost库的使用:
- (01)库的导入和值的划分:
- (02)参数设置:
- (03)XGBClassifier()&fit()&predict()训练过程:
- (04)测试的准确率:
- (05)fit()的参数设定栗子:
- (06)xgboost的plot_importance()栗子:
- (07)XGBClassifier()内的参数:
- (Ⅳ)Adaboost算法概述:
(Ⅰ)Xgboost的基本原理:
如图:
基本原理:
采用集成思想,对目标进行不同基准的容器划分进行权值的相加计算,综合评估。
项的权值公式:
i为样本编号,j为叶子编号。
目标函数:
(yi)表示预测值,表示实际值。
最优解函数:
即:对一棵树的所有项的目标函数值相加求期望,并使得期望函数最小。
采用集成的思想:k为决策树编号。
即:对所有树的进行累加。
(Ⅱ)集成思想的提升算法–xgboost算法:
t为决策树编号。
即:降低每一次加入的损失函数。
补:
Wq(Xi)为叶子节点中样本权重。
注:同一个叶子中的样本权重相同。
(01)加入正则化惩罚项——防止过拟合:
举例:
Ω(ft)=3γ+1/2*λ(22+0.12+(-1)2)=3γ+2.505λ
(02)得到新的目标函数:
由目标函数 对 进行替换化简:
而xgboost算法在于通过在原有决策树的基础上生成新的决策树并减小现有的残差值。
(03)引入泰勒展开式对(△)式处理:
泰勒展开式为:
符合(x+△x)结构,对(△)式进行泰勒展开:
由于在第t次Obj(t)前已经计算完成为定值,所以为常数项。
(04)样本遍历→叶子遍历,得到下式:
然后对gi和hi进行下式的替换:
最终得到优化后的目标函数:
(05)对Obj(t)对Wi进行求偏导,并且令偏导等于0,得到Wj值:
(06)并将Wj带回原目标函数,得到最终目标函数关系Obj(λ,γ,t):
(Ⅲ)xgboost库的使用:
(01)库的导入和值的划分:
(02)参数设置:
(03)XGBClassifier()&fit()&predict()训练过程:
(04)测试的准确率:
(05)fit()的参数设定栗子:
预测结果展示:
(06)xgboost的plot_importance()栗子:
预测结果展示:
(07)XGBClassifier()内的参数:
a.learning rate
b.tree:包括max_depth,min_child_weight,subsample,colsample_bytree,gamma
c.正则化参数:包括lamba,alpha
(Ⅳ)Adaboost算法概述:
Adaboost简介 :
Boosting, 也称为增强学习或提升法,是一种重要的集成学习技术, 能够将预测精度仅比随机猜度略高的弱学习器增强为预测精度高的强学习器,这在直接构造强学习器非常困难的情况下,为学习算法的设计提供了一种有效的新思路和新方法。其中最为成功应用的是,Yoav Freund和Robert Schapire在1995年提出的AdaBoost算法。
AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。
Adaboost算法可以简述为三个步骤:
(1)首先,是初始化训练数据的权值分布D1。假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N。
(2)然后,训练弱分类器hi。具体训练过程中是:如果某个训练样本点,被弱分类器hi准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。 换而言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。
附Adaboost原理及代码的博客原文:
原文链接:https://blog.csdn.net/guyuealian/article/details/70995333