0406任务二高级算法梳理-GBDT算法梳理

一、加法模型与前向分布算法

https://blog.csdn.net/u013597931/article/details/79874439
AdaBoost 算法可以认为是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法的二类分类学习方法。

1、加法模型

在这里插入图片描述
对应两个未知参数,基函数的参数和基函数的系数。

2、前向分布算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前向分布算法求解这一问题的优化方法是:每次只学习一个基函数及系数,逐步逼近最优解。

二、负梯度拟合

https://blog.csdn.net/u013597931/article/details/79874439
在这里插入图片描述
其实无论是分类问题还是回归问题的提升树,我们都可以用损失函数的负梯度来其实无论是分类问题还是回归问题的提升树它们的区别只在于损失函数不同导致的负梯度的不同,这就是GBDT算法。

第1步:估计使损失函数极小化的常数值,它是只有一个根结点的树。
第2(a)步:计算损失函数的负梯度在当前模型的值,将它作为残差的估计。对于平方损失函数,它就是通常所说的残差;对于一般损失函数,它就是残差的近似值。
第2(b)步:估计回归树的叶结点区域,以拟合残差的近似值。
第2©步:利用线性搜索估计叶结点区域的值,使损失函数极小化。
第2(d)步:更新回归树。

三、GBDT常用损失函数

https://www.cnblogs.com/pinard/p/6140514.html

1、分类算法

(1)指数损失函数
在这里插入图片描述
(2)对数损失函数,分为二元分类和多元分类。
对于二元分类
在这里插入图片描述

2、回归算法

(1)均方差
在这里插入图片描述
(2)绝对损失
在这里插入图片描述
(3)Huber损失,它是均方差和绝对损失的折衷产物,对于远离中心的异常点,采用绝对损失,而中心附近的点采用均方差。这个界限一般用分位数点度量。
(4)分位数损失。
对于Huber损失和分位数损失,主要用于健壮回归,也就是减少异常点对损失函数的影响。

四、GBDT回归算法

https://blog.csdn.net/u013597931/article/details/79874439
在这里插入图片描述
在这里插入图片描述

五、GBDT分类算法

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

1、二分类

在这里插入图片描述

2、多分类

在这里插入图片描述

六、正则化

在这里插入图片描述

七、优缺点

目前GBDT的算法比较好的库是xgboost。当然scikit-learn也可以。

  • GBDT主要的优点有:
    (1)可以灵活处理各种类型的数据,包括连续值和离散值。
    (2)在相对少的调参时间情况下,预测的准确率也可以比较高。这个是相对SVM来说的。
    (3)使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
  • GBDT的主要缺点有:
    (1)由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。

八、sklearn参数

https://mp.weixin.qq.com/s/BAkZCSaq5H8D3EkKKAilig
GBDT和Adaboost都是Boosting模型的一种,但是略有不同,主要有以下两点不同:

  • GBDT使用的基模型是CART决策树,且只能是CART决策树,而Adaboost的默认基模型是CART决策树,可以是其他模型。
  • GBDT通过计算每次模型的负梯度来进行模型迭代,而Adaboost模型则根据错分率来进行模型迭代。
class sklearn.ensemble.GradientBoostingClassifier
(loss='deviance', learning_rate=0.1, n_estimators=100, 
subsample=1.0, criterion='friedman_mse', min_samples_split=2,
 min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_depth=3, min_impurity_decrease=0.0, 
min_impurity_split=None,init=None,
random_state=None, max_features=None, verbose=0,
max_leaf_nodes=None, warm_start=False, presort='auto')

因基分类器是决策树,所以很多参数都是用来控制决策树生成的,这些参数与前面决策树参数基本一致.

loss:损失函数度量,有对数似然损失deviance和指数损失函数exponential两种,默认是deviance,即对数似然损失,如果使用指数损失函数,则相当于Adaboost模型。

criterion: 样本集的切分策略,决策树中也有这个参数,但是两个参数值不一样,这里的参数值主要有friedman_mse、mse和mae3个,分别对应friedman最小平方误差、最小平方误差和平均绝对值误差,friedman最小平方误差是最小平方误差的近似。

subsample:采样比例,这里的采样和bagging的采样不是一个概念,这里的采样是指选取多少比例的数据集利用决策树基模型去boosting,默认是1.0,即在全量数据集上利用决策树去boosting。

warm_start:“暖启动”,默认值是False,即关闭状态,如果打开则表示,使用先前调试好的模型,在该模型的基础上继续boosting,如果关闭,则表示在样本集上从新训练一个新的基模型,且在该模型的基础上进行boosting。

决策树的sklearn参数详解
https://mp.weixin.qq.com/s?src=11&timestamp=1554637897&ver=1532&signature=qy7Yc0vXEPktlgUp2s4Ahxbi9kAMidSEyZdsH8t1icCJSZYi6Wtw1hjcnEm92qMmoY0QE9uujgU6j1paCDGBXwxTHpdAMiwRhRnRhg47wqQnS0jHDYPLrGzhQjBd&new=1

九、应用场景

GBDT几乎可用于所有回归问题(线性/非线性),相对logistic regression仅能用于线性回归,GBDT的适用面非常广。亦可用于二分类问题(设定阈值,大于阈值为正例,反之为负例)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值