10 集成学习 - XGBoost的学习策略

09 集成学习 - XGBoost公式推导

当树的结构确定的时候,我们可以得到最优的叶子点分数以及对应的最小损失值,问题在于如何确定树结构?
1、暴力穷举所有可能的结构,选择损失值最小的;(很难求解)
2、贪心法,每次尝试选择一个分裂点进行分裂,计算操作前后的增益,选择增益最大的方式进行分。

决策树相关算法计算指标:
1、ID3算法:信息增益
2、C4.5算法:信息增益率
3、CART算法:Gini系数

XGBoost目标函数

从目标函数中,我们希望损失函数越小越好,那就是 G2/(H+λ) 越大越好;从而,
对于一个叶子节点的分裂的分裂,分裂前后的信息增益定义为:

Gain值越大,分裂后减少的损失值越大。所以对于一个叶子节点分割时,计算
所有候选的(feature,value)对应的gain,选择gain最大特征进行分割。


树节点分裂方法

__精确算法:__遍历所有特征的所有可能的分割点,计算gain值,选择最大的gain值对应的(feature,value)进行分割。

近似算法: 对于每个特征,只考虑分位点,减少计算复杂度。

近似算法案例:三分位数

XGBoost不是简单的按照样本个数进行分位的,而是按照二阶导数值作为权重
来进行划分的:


XGBoost的其它特性

1、列采样(column subsampling):借鉴随机森林的做法,支持列抽样,不仅可以降低过拟合,还可以减少计算量。
2、支持对缺失值的自动处理。对于特征的值有缺失的样本,XGBoost可以自动学习分裂方向;
3、XGBoost支持并行。XGBoost的并行是特征粒度上的,在计算特征的Gain的时候,会并行执行,但是在树的构建过程中,还是串行构建的。
4、XGBoost算法中加入正则项,用于控制模型的复杂度,最终模型更加不容易过拟合。
5、XGBoost基学习器支持CART、线性回归、逻辑回归。
6、XGBoost支持自定义损失函数(要求损失函数二阶可导)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值