树模型集成学习(Tree Embedding)

本文介绍了树模型集成学习中的RandomForest、GBDT、Xgboost和Lightgbm。随机森林通过随机属性选择和样本选择增加模型多样性,GBDT使用加法模型和前向分布算法,Xgboost在GBDT基础上增加了二阶梯度信息和优化,而Lightgbm则通过直方图算法提升了效率。文章还探讨了各模型的核心公式、优缺点及防止过拟合的策略。
摘要由CSDN通过智能技术生成

树模型集成学习

集成学习主要有两个思想,分别是bagging和boosting。树模型的集成模型都是使用树作为基模型,最常用的cart树,常见的集成模型有RandomForest、GBDT、Xgboost、Lightgbm、Catboost。

概要介绍

RandomForest

随机森林(Random Forest,RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。既然模型叫做随机森林,森林我们可以理解为是多棵树的集合就是森林,随机主要有两个点进行有放回的采样,

  1. 每次建树特征个数随机选择
  2. 每次建树样本个数随机选择

随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成得泛化性能可通过个体学习器之间差异度得增加而进一步提升。使得模型更加鲁棒。

GBDT

GBDT使用的是加法模型和前向分布算法,而AdaBoost算法是前向分布加法算法的特例,前向分布算法学习的是加法模型,当基函数为基本分类器时,该加法模型等价于Adaboost的最终分类器。
GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是, 损失函数是, 我们本轮迭代的目标是找到一个CART回归树模型的弱学习器,让本轮的损失函数最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。GBDT本轮迭代只需拟合当前模型的残差。

Xgboost

Xgboost是gbdt的改进或者说是梯度提升树的一种,Xgb可以说是工程上的最佳实践模型,简单的说xgb=gbdt+二阶梯度信息+随机特征和样本选择+特征百分位值加速+空值特征自动划分。还有必要的正则项和最优特征选择时的并行计算等。

Lightgbm

首先,GBDT是一个非常流行的机器学习算法,另外基于GBDT实现的XGBoost也被广泛使用。但是当面对高纬度和大数据量时,其效率和可扩展性很难满足要求。主要的原因是对于每个特征,我们需要浏览所有的数据去计算每个可能分裂点的信息增益,真是非常耗时的。基于此,提出了两大技术:Gradient-based One-Side Sampling (GOSS) and Exclusive Feature Bundling (EFB).

catboost

CatBoost = Category + Boosting.
2017年7月21日,俄罗斯Yandex开源CatBoost,亮点是在模型中可直接使用Categorical特征并减少了tuning的参数。

核心公式

gbdt的前向分布公式
  1. gbdt的前向分布公式
    (1) f m ( x ) = f m − 1 ( x ) + β m b ( x ; γ m ) f_m(x)=f_{m-1}(x)+\beta_m b(x;\gamma_m) \tag{1} fm(x)=fm1(x)+βmb(x;γm)(1)
  2. gbdt的第m轮的扶梯度公式
    (2) − [ ∂ L ( y , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) -\left[ \frac{\partial L(y,f(x_i))}{\partial f(x_i)} \right]{f(x)=f{m-1}(x)} \tag{2} [f(xi)L(y,f(xi))]f(x)=fm1(x)(2)
  3. gbdt格式化损失函数
    (3) L ( y , f m ( x ) ) = L ( y , f m − 1 ( x ) + β m b ( x ; γ m ) ) L(y,f_m(x))=L(y,f_{m-1}(x)+\beta_m b(x;\gamma_m)) \tag{3} L(y,fm(x))=L(y,fm1(x)+βmb(x;γm))(3)
  4. 泰勒展开式
    若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:
    (4) f ( x ) = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + R n ( x ) f(x)=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x0)}{2!}(x-x_0)^2+ ... + \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+R_n(x) \tag{4} f(x)=f(x0)+f(x0)(xx0)+2!f(x0)(xx0)2+...+n!f(n)(x0)(xx0)n+Rn(x)(4) (5) f ( x + Δ x ) = f ( x ) + f ′ ( x ) Δ x + 1 2 ! f ′ ′ ( x ) Δ x 2 + . . . + 1 n ! f ( n ) ( x ) Δ x n + R n ( x ) f(x+\Delta x)=f(x)+f'(x)\Delta x + \frac{1}{2!}f''(x)\Delta x^2+...+\frac{1}{n!}f^{(n)}(x)\Delta x^n+R_n(x) \tag{5} f(x+Δx)=f(x)+f(x)Δx+2!1f(x)Δx2+...+n!1f(n)(x)Δxn+Rn(x)(5)
    其中, R n ( x ) R_n(x) Rn(x) ( x − x 0 ) n (x-x_0)^n (xx0)n的高阶无穷小.
  5. xgboost的目标公式(t轮迭代)
    (6) o b j ( t ) = ∑ i = 1 n l ( y i , y ^ i t ) + ∑ i = 1 t Ω ( f i ) obj^{(t)}=\sum_{i=1}^{n}l(y_i,\hat{y}_i^t)+\sum_{i=1}^{t}\Omega(f_i) \tag{6} obj(
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值