XGboost简介

X G b o o s t 简 介 XGboost简介 XGboost



XGBOOST:eXtreme Gradient Boosting

是GBM的c++优化实现,快速有效

  • The name xgboost, though, actually refers to the engineering goal to
    push the limit of computations resources for boosted tree algorithms.
    Which is the reason why many people use xgboost.

XGboost是弱小者合作的胜利

95年提出了第一个Boosting算法,AdaBoost,其在2001年正式被工业正式认可。

非结构化数据:深度学习很适应,比如图像、文本、视频

而XGBoost在结构化数据集上,在分类、回归和排序预测建模上表现突出。


目标函数通常包含两部分

–损失函数:与任务有关(选择与训练数据匹配最好的模型)
• 回归:残差平方
• 分类:0-1损失、logistic损失、合叶损失(SVM)
• …
–正则项:与模型复杂度度有关(选择最简单的模型)
• L2正则
• L1正则
• …


Boosting: 将弱学习器组合成强学习器
• 弱学习器:比随机猜测性能好的学习器
• 常用弱学习器:决策树/分类回归树
– 决策树:每个叶子节点对应一个决策
– 分类回归树:每个叶子节点有个预测分数(score),比决策树更灵活


Adaptive Boosting (AdaBoost): 第一个Boosting算法
•弱分类器:只有一个分裂的决策树
– if feature_value > t, output 1; otherwise output 0
•对当前分类器不能处理的样本,增加其权重
•不断的加入新的弱学习器,直到达到终止条件
– 强学习器:弱学习器的加权线性组合,权重与其正确率有关


Friedman将AdaBoost推广到一般Gradient Boosting框架,得到Gradient Boosting
Machines (GBM): 将boosting视作一个 数值优化问题,采用类似梯度下降的方式优化求解

  • 亦被称为stage-wise additive model: 每次增加一个弱学习器到已有模型,已在模型中的弱学习器不再变化
  • 这种推广使得我们可以使用任何可微的损失函数,从而支持的任务 从两类分类扩展到回归和多类分类问题。

XGBoost的特点

• 1.正则化: 以“正则化提升(regularized boosting)”著称
– 标准GBM的实现没有显式的正则化步骤
– 正则化对减少过拟合有帮助
• 2.并行处理,相比GBM有了速度的飞跃
– 借助 OpenMP ,自动利用单机CPU的多核进行并行计算
– 支持GPU加速
– 支持分布式
• 3.高度的灵活性: 允许用户自定义优化目标和评价标准 – 只需损失函数的一阶导数和二阶导数
• 4.剪枝
– 当新增分裂带来负增益时,GBM会停止分裂
– XGBoost一直分裂到指定的最大深度(max_depth),然后回过头来剪枝
• 5.内置交叉验证
– XGBoost允许在每一轮boosting迭代中使用交叉验证 à可以方便地获
得最优boosting迭代次数
– GBM使用网格搜索,只能检测有限个值
• 6.在线学习:XGBoost和GBM都支持


XGBoost是近几年应用机器学习领域内一个强有力的武器

– 执行速度:确实比其他Gradient Boosting实现快
– 模型性能:在结构化数据集上,在分类/回归/排序预测建模上表现突出


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页