问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

(二):GBDT算法梳理

发布网友 发布时间:2022-10-13 04:24

我来回答

1个回答

热心网友 时间:2023-10-29 11:10

GBDT(Gradient Boosting Decision Tree)是一种采用加法模型(即基函数的线性组合)与前向分步算法并以决策树作为基函数的提升方法。通俗来说就是,该算法由多棵决策树组成,所有树的结论加起来形成最终答案。
GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。回顾下Adaboost,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。

在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft−1(x), 损失函数是L(y,ft−1(x)), 我们本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x),让本轮的损失函数L(y,ft(x)=L(y,ft−1(x)+ht(x))最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。

要理解GBDT算法,得先来了解一下什么是前向分步算法。下面一起来瞧瞧。

我们将

作为加法模型,其中b(x;γm)为基函数,γm为基函数的参数,βm为基函数的系数,βm表示着对应的基函数在加法模型f(x)中的重要性。

在给定训练数据和损失函数L(y,f(x))的条件下,学习加法模型成为经验风险极小化 (即损失函数极小化问题) :

前向分步算法求解这一优化问题的思路:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步去*近上述的目标函数式,就可简化优化的复杂度,每一步只需优化如下损失函数:

前向分步算法流程:

因此,前向分布算法将同时求解从m=1到M的所有参数βm, rm的优化问题简化为逐次求解各个βm, rm的优化问题。

提升树利用加法模型与前向分步算法实现学习的优化过程,当损失函数是平方损失和指数损失函数时,每一步优化很简单,但对一般损失函数而言,每一步的优化并不容易。Freidman提出了梯度提升算法(gradient boosting),其关键是利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树(用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树)。第t轮的第i个样本的损失函数的负梯度表示为:

. 其中 J 为叶子节点的个数。

针对每一个叶子节点里的样本,我们求出使损失函数最小,也就是拟合叶子节点最好的的输出值Ctj

如下:

这样我们就得到了本轮的决策树拟合函数如下:

从而本轮最终得到的强学习器的表达式如下:

通过损失函数的负梯度来拟合,我们找到了一种通用的拟合损失误差的办法,这样无轮是分类问题还是回归问题,我们通过其损失函数的负梯度的拟合,就可以用 GBDT 来解决我们的分类回归问题。区别仅仅在于损失函数不同导致的负梯度不同而已。

在GBDT算法中,损失函数的选择十分重要。针对不同的问题,损失函数有不同的选择。

1.对于分类算法,其损失函数一般由对数损失函数和指数损失函数两种。

(1)指数损失函数表达式:

(2)对数损失函数可分为二分类和多分类两种。

2.对于回归算法,常用损失函数有如下4种。

(1)平方损失函数

(2)绝对损失函数

对应负梯度误差为:

(3)Huber损失,它是均方差和绝对损失的折中产物,对于远离中心的异常点,采用绝对损失误差,而对于靠近中心的点则采用平方损失。这个界限一般用分位数点度量。损失函数如下:

对应的负梯度误差为:

(4)分位数损失。它对应的是分位数回归的损失函数,表达式为:

其中 θ为分位数,需要我们在回归之前指定。对应的负梯度误差为:

对于Huber损失和分位数损失,主要用于健壮回归,也就是减少异常点对损失函数的影响。

这里我们再看看GBDT分类算法,GBDT的分类算法从思想上和GBDT的回归算法没有区别,但是由于样本输出不是连续的值,而是离散的类别,导致我们无法直接从输出类别去拟合类别输出的误差。
为了解决这个问题,主要有两个方法,一个是用指数损失函数,此时GBDT退化为Adaboost算法。另一种方法是用类似于逻辑回归的对数似然损失函数的方法。也就是说,我们用的是类别的预测概率值和真实概率值的差来拟合损失。本文仅讨论用对数似然损失函数的GBDT分类。而对于对数似然损失函数,我们又有二元分类和多元分类的区别。

和 Adaboost 一样,我们也需要对 GBDT 进行正则化,防止过拟合。GBDT 的正则化主要有三种方式。

在scikit-learn中,GradientBoostingClassifier为GBDT的分类类, 而GradientBoostingRegressor为GBDT的回归类。两者的参数类型完全相同,当然有些参数比如损失函数loss的可选择项并不相同。这些参数中,类似于Adaboost,我们把重要参数分为两类,第一类是Boosting框架的重要参数,第二类是弱学习器即CART回归树的重要参数。
下面我们就从这两个方面来介绍这些参数的使用。

这次基本上是个CRUD boy,对于这些资料都大部分没有消化完成,还不知道能用在哪个地方。
参考资料:

3、GBDT算法梳理 https://juejin.im/post/5c7b7bf451882530a269a1ba

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四万元没开发票税务局发多少钱 不给开发票这个情节要罚多少钱? 广东乌龙茶的种类 银行什么时候拉征信 600795国电电力,为什么在2010年4,5月突然从8块跌到4块呢?涨幅-50%... 学习很差怎么逆袭 高考文科差生五十天冲刺计划!!! ...漂亮女人,那些不大漂亮的还很善良有点丑的怎么办?她们不是很可怜吗... CS1.6 AWP经典的FRAG视频 求链接 ...大家谁有AWP的视频或者DEMO,要个看看,学学,谢谢!~ GBDT原理最通俗的解释 黑夜到处黑不隆咚,蚝子上了一个大钟打一什么生肖 一个手机怎样登两个手机 一个可以同时登两个手机吗 具体操作步骤 怎样同时把一个登录两部手机? 形容路的句子 新人提问,怎么给自己的视频做歌词的弹幕字幕 有谁能给俺说说那个台风是咋样命名的呢? 产品发往欧美,打算订做一批箱子,木制包装箱和胶合板包装箱有什么差别?哪一种更实用一些。。 哪位大神能告诉我产品包装纸箱上这个标志是什么意思?详见图片 电阻的公式怎么写? 妈妈说什么都是真的歌词 金池 金池唱的他不懂歌词是什么意思? 中国银行信用卡取消临时额度后生效时间是什么时候? 临时额度说1号生效过了12点就有吗 中国银行信用卡取消临时额度什么时间生效? 主题思想 构思 招工信息怎么写吸引人 日本转运 一般海运商品价值写多少比较好 日本转运的话,商品价格怎么填 GBDT算法 请日语大神写出下列词汇的平假名,不甚感激 请问师兄姐:日语里的“病”【やまい--ya mai】 【病--びょう--byou 】有什么不同?? 医院和病人---日语怎么说 “那个白色建筑物是医院”用日语怎么讲啊? 求解释日语行き 着き的区别 下面这句用着き 是不是可以翻译成 到达了医院 现在开始上夜班? 病院 日语作文题目 病院/病気 字数500 600左右 寂寞了该怎么办呢 莲子可以同木瓜、鸭一起煲汤吗 小米洗衣机显示门锁故障 洗衣机门锁故障怎么回事 寂寞时怎么办? 12.5志愿活动总结 项伯为什么要背叛项羽? 项羽这么信任项伯,为何项伯要背叛他? 项伯是项羽仅存的几位亲人中的一个,为何却屡次背叛项羽? 鸿门宴中,项氏“叛徒”项伯,为何要帮助刘邦而背叛侄儿项羽? 软件的拼音 谁有关于电脑检测卡代码的说明阿?全面点啊 黑子周期的公式 求几个类似 再见尼古丁 这种的戒烟网名