集成算法之GBDT和xgboost

本文详细介绍了xgboost和GBDT这两种集成算法的思想、目标函数优化及区别。xgboost是通过不断添加树模型,优化目标函数来拟合残差,其目标函数包括训练误差和正则化项。它使用泰勒展开优化,支持特征子采样和列采样以防止过拟合。GBDT则基于CART树,通过负梯度方向拟合残差,通过迭代构建多个弱分类器。xgboost在GBDT的基础上增加了二阶导数信息、正则项和并行计算等优化。
摘要由CSDN通过智能技术生成

大家知道,我们在进行建模时,会求解一个目标函数;目标函数又称代价函数,在机器学习中普遍存在,一般形式为:
o b j ( θ ) = L ( θ ) + Ω ( θ ) obj(\theta)=L(\theta)+\Omega(\theta) obj(θ)=L(θ)+Ω(θ)
其中:
L ( θ ) L(\theta) L(θ)为训练误差,衡量模型在训练集上的表现;
Ω ( θ ) \Omega(\theta) Ω(θ)是正则化惩罚,衡量模型的复杂度。

训练集误差: L = ∑ i = 1 n l ( y i , y i ^ ) L=\sum_{i=1}^{n}l(y_i,\hat{y_i}) L=i=1nl(yi,yi^)
square loss: l ( y i , y i ^ ) = ( y i − y i ^ ) 2 l(y_i,\hat{y_i})=(y_i-\hat{y_i})^2 l(yi,yi^)=(yiyi^)2
logistic loss: l ( y i , y i ^ ) = y i l n ( 1 + e − y i ^ ) + ( 1 − y i ) l n ( 1 + e y i ^ ) l(y_i,\hat{y_i})=y_iln(1+e^{-\hat{y_i}})+(1-y_i)ln(1+e^{\hat{y_i}}) l(yi,yi^)=yiln(1+eyi^)+(1yi)ln(1+eyi^)

正则化惩罚:
L2 norm: Ω ( w ) = λ ∣ ∣ w ∣ ∣ 2 \Omega(w)=\lambda||w||^2 Ω(w)=λw2
L1 norm(lasso): Ω ( w ) = λ ∣ ∣ w ∣ ∣ \Omega(w)=\lambda||w|| Ω(w)=λw

机器学习实际上就是在给定的训练集上学习模型参数:优化训练误差使模型具有预测性;优化正则化让模型更简单,使预测更加稳定,降低过拟合风险。

一、xgboost

XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器。因为XGBoost是一种提升树模型,所以它是将许多树模型集成在一起,形成一个很强的分类器。而所用到的树模型则是CART回归树模型。

xgboost算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值。

xgboost目标函数objective: ∑ i = 1 n l ( y i , y i ^ ) + ∑ k = 1 k Ω ( f k ) \sum_{i=1}^{n}l(y_i,\hat{y_i})+\sum_{k=1}^{k}\Omega(f_k) i=1nl(yi,yi^)+k=1kΩ(fk)

1、算法思想:

start from constant prediction, add a new function each time
y ^ ( 0 ) = 0 \hat y^{(0)}=0 y^(0)=0
y ^ ( 1 ) = f 1 ( x i ) = y ^ i ( 0 ) + f 1 ( x i ) \hat y^{(1)}=f_1(x_i)=\hat y_i^{(0)}+f_1(x_i) y^(1)=f1(xi)=y^i(0)+f1(xi)
y ^ ( 2 ) = f 1 ( x i ) + f 2 ( x i ) = y ^ i ( 1 ) + f 2 ( x i ) \hat y^{(2)}=f_1(x_i)+f_2(x_i)=\hat y_i^{(1)}+f_2(x_i) y^(2)=f1(xi)+f2(xi)=y^i(1)+f2(xi)
·······
y ^ ( t ) = ∑ k = 1 t f k ( x i ) = y ^ i ( t − 1 ) + f t ( x i ) \hat y^{(t)}=\sum_{k=1}^{t}f_k(x_i)=\hat y_i^{(t-1)}+f_t(x_i) y^

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值