树模型详解2-GBDT算法

与adaboost一样,GBDT也是采用前向分步算法,只是它会用决策树cart算法作为基学习器,因此先要从分类树和回归树讲起

决策树-提升树-梯度提升树

决策树cart算法

回归树:叶子结点的值是所有样本落在该叶子结点的平均值

如何构建:1.深度?2.划分结点如何选取3.叶子结点cm值

1的方法:深度/子结点包含样本数/精度

3的方法:取均值损失最小

2的方法:找到一个划分条件使得cm求和最小

采用的损失:平方损失

分类树:结点不止有特征,还有特征的属性

特征选择方式:选择gini值最小的特征作为划分标准

GBDT:梯度提升树,基分类器是决策树,且权重均为1

二分类问题的提升树:

是adaboost的特殊情况:基分类器为二类分类树,且权重为1,损失函数用指数损失函数

回归问题的提升树:让当前树拟合残差

GBDT:作用:考虑一般问题,解决不管损失函数是什么都能求解

方法:泰勒展开推导:由此得到步骤为:

1.计算当前损失函数的负梯度

2.将xi,yi带入损失函数,得到第m轮的训练数据集Tm={(x1,rm1),(x2,rm2)...}

3.让当前的基学习器拟合上述样本

如何用它解释回归问题的提升树?

L=1/2(Y-F(X))2,对fx求导得y-f(x)=rm残差

那么GBDT如何解决二分类问题?回归树能不能做二分类?

问题:无法直接输出类别或者概率预估

解决方案:通过sigmoid函数将加法模型映射到0-1的空间中,再用交叉熵损失进行学习

损失函数:

负梯度为Y-1/(1+e-fm(x))=Y-Ym-1

所以rmi=yi-ym-1,i来构造训练样本

损失函数决定了cm的取值,所以损失函数最好是能最大程度地拟合残差,最终我们得到的最优损失函数(用总体损失)和它对应的cm为

但这个cmj无法解出,通过二阶泰勒展开得到其解

但是,使用总体损失对回归树进行优化,计算过于复杂,而使用MSE划分得到的树的结构是一样的,因此实际步骤为:

1、用传统回归数构建好回归树的结构

2、用总体损失中的方式计算树的叶子节点中的cmj

为了避免过拟合,有时也加上一个学习率,让它不要学的太满

最后讲GBDT+LR:

那么如何用决策树构造新特征呢?

构建完所有叶子节点后,再送到逻辑回归中,进行CTR预估,注意这两步是独立的,因此不用将LR的梯度传回到GBDT

优点:自动做特征工程 缺点:容易过拟合

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值