机器学习XGBoost 算法概述

XGBoost 是一种最近在应用机器学习和 Kaggle 结构化或表格数据竞赛中占据主导地位的算法。

XGBoost 是为速度和性能而设计的梯度提升决策树的实现。

在这篇文章中,您将了解 XGBoost 并简要介绍它是什么、它来自哪里以及如何了解更多信息。

看完这篇文章你会知道:

  • XGBoost 是什么以及项目的目标。

  • 为什么 XGBoost 必须成为您的机器学习工具包的一部分。

  • 您可以在这里了解更多信息,以便在您的下一个机器学习项目中开始使用 XGBoost。


什么是 XGBoost?

——陈天启在 Quora,回答“ R gbm(梯度提升机)和xgboost(极限梯度提升)有什么区别?” 时解释道:“

XGBoost全称是eXtreme Gradient Boosting

不过,xgboost 这个名字实际上是指推动提升树算法计算资源极限的工程目标。这就是许多人使用 xgboost 的原因。”

XGBoost是由陈天奇创建的梯度提升机的实现,现在有许多开发人员的贡献。它属于分布式机器学习社区或DMLC保护下的更广泛的工具集合,他们也是流行的mxnet 深度学习库的创建者。

陈天启在 XGBoost进化背后的故事和教训一文中,提供了一个简短而有趣的关于 XGBoost 创建的背景故事。

XGBoost 是一个软件库,您可以下载并安装在您的机器上,然后从各种界面访问。具体来说,XGBoost 支持以下主要接口:

  • 命令行界面 (CLI)。

  • C++(编写库的语言)。

  • Python 接口以及 scikit-learn 中的模型。

  • R 接口以及 caret 包中的模型。

  • Julia。

  • Java 和 JVM 语言(如 Scala)和平台(如 Hadoop)。


XGBoost 功能

该库专注于计算速度和模型性能,因此几乎没有多余的装饰。尽管如此,它确实提供了许多高级功能。

模型特点

该模型的实现支持 scikit-learn 和 R 实现的功能,并添加了正则化等新功能。支持三种主要形式的梯度提升:

  • 梯度提升算法也称为梯度提升机,包括学习率。

  • 随机梯度提升,在每个分割级别的行、列和列进行子采样。

  • 具有 L1 和 L2 正则化的正则化梯度提升。

系统特点

该库提供了一个用于各种计算环境的系统,尤其是:

  • 在训练期间使用所有 CPU 内核并行化树构建。

  • 使用一组机器训练非常大的模型的分布式计算。

  • 不适合内存的超大数据集的核外计算。

  • 缓存优化数据结构和算法以充分利用硬件。

算法特点

该算法的实现旨在提高计算时间和内存资源的效率。设计目标是充分利用可用资源来训练模型。一些关键的算法实现特性包括:

  • 具有自动处理缺失数据值的稀疏感知实现。

  • 支持树构建并行化的块结构。

  • 继续训练,以便您可以在新数据上进一步提升已经拟合的模型。

XGBoost 是免费的开源软件,可在 Apache-2 许可下使用。

为什么要使用 XGBoost?

使用 XGBoost 的两个理由也是项目的两个目标:

  1. 执行速度。

  2. 模型性能。

1. XGBoost 执行速度

通常,XGBoost 速度很快。与梯度提升的其他实现相比,速度非常快。

Szilard Pafka执行了一些客观的基准测试,将 XGBoost 的性能与梯度提升和袋装决策树的其他实现进行了比较。他于 2015 年 5 月在题为“基准随机森林实现”的博客文章中写下了他的结果。

他还提供了 GitHub 上的所有代码以及更广泛的带有硬数字的结果报告。

图片

他的结果表明,XGBoost 几乎总是比来自 R、Python Spark 和 H2O 的其他基准实现更快。

从他的实验中,他评论道:

我还尝试了 xgboost,这是一个流行的 boosting 库,它也能够构建随机森林。它速度快,内存效率高,准确度高

— Szilard Pafka,对随机森林实现进行基准测试。

2. XGBoost 模型性能

XGBoost 在分类和回归预测建模问题上主导结构化或表格数据集。

证据是它是 Kaggle 竞赛数据科学平台上竞赛获胜者的首选算法。

例如,有一个不完整的一、二、三等奖获奖名单,标题为: XGBoost: Machine Learning Challenge Winning Solutions。

为了使这一点更加具体,以下是 Kaggle 竞赛获胜者的一些有见地的引述:

作为越来越多的 Kaggle 比赛的获胜者,XGBoost 再次向我们展示了它是一种出色的全能算法。

——拿督优胜者访谈:第一名,疯狂教授

如有疑问,请使用 xgboost。

— Avito 优胜者访谈:第一名,Owen Zhang

我喜欢表现良好的单个模型,我最好的单个模型是 XGBoost,它可以单独获得第 10 名。

—卡特彼勒获奖者访谈:第一名

我只用过 XGBoost。

— Liberty Mutual Property Inspection,优胜者访谈:第一名,王清臣

我使用的唯一监督学习方法是梯度提升,在优秀的 xgboost 中实现。

— Recruit Coupon Purchase 优胜者访谈:第二名,Halla Yang

XGBoost 使用什么算法?

XGBoost 库实现了梯度提升决策树算法。

该算法有很多不同的名称,例如梯度提升、多重加性回归树、随机梯度提升或梯度提升机。

Boosting 是一种集成技术,其中添加新模型以纠正现有模型所造成的错误。模型按顺序添加,直到无法进行进一步改进。一个流行的例子是AdaBoost 算法,它对难以预测的数据点进行加权。

梯度提升是一种创建新模型的方法,用于预测先前模型的残差或误差,然后将它们相加以进行最终预测。之所以称为梯度提升,是因为它使用梯度下降算法来最小化添加新模型时的损失。

xgboost支持回归和分类预测建模问题。

官方 XGBoost 资源

XGBoost 的最佳信息来源是该项目的官方 GitHub 库。

https://github.com/dmlc/xgboost

图片

还有一个官方文档页面,其中包括一系列不同语言的入门指南、教程、操作指南等。

有一些关于 XGBoost 的更正式的论文值得一读,以了解有关该库的更多背景信息:

  • 使用 Boosted Trees 发现希格斯玻色子,2014 年。

    http://proceedings.mlr.press/v42/chen14.pdf

  • XGBoost:可扩展的树提升系统,2016 年。

    https://arxiv.org/abs/1603.02754


xgboost就为大家介绍到这里了,欢迎各位同学报名<python风控建模实战lendingclub>,学习更多集成树算法相关知识
https://edu.csdn.net/course/detail/30742

版权声明:文章来自公众号(python风控模型),未经许可,不得抄袭。遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python机器学习建模

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值