Xgboost集成算法与Adaboost算法概述

Xgboost集成算法与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

猜你喜欢

转载自blog.csdn.net/acceptedday/article/details/98875508