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版权协议,转载请附上原文出处链接及本声明。

机器学习XGBoost 算法概述相关推荐

  1. XGBoost算法概述

    学习笔记,仅供参考,有错必纠 转载自:终于有人说清楚了–XGBoost算法 文章目录 什么是XGBoost XGBoost树的定义 正则项:树的复杂度 树该怎么长 如何停止树的循环生成 XGBoost ...

  2. 机器学习基础算法概述

    机器学习算法大致可以分为三类: 监督学习算法 (Supervised Algorithms):在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此 ...

  3. GBDT(梯度提升树)算法概述

    本文为本人另两篇博客机器学习/计算机视觉(cv)实习面试资料整理(附字节.阿里.腾讯.美团面经).机器学习知识点整理以及集成树知识点概括下的子内容,有需要的朋友按需自取~ 另:本文只是知识点的整理概括 ...

  4. AdaBoost算法概述

    本文为本人另两篇博客机器学习/计算机视觉(cv)实习面试资料整理(附字节.阿里.腾讯.美团面经).机器学习知识点整理以及集成树知识点概括下的子内容,有需要的朋友按需自取~ 另:本文只是知识点的整理概括 ...

  5. 【白话机器学习】算法理论+实战之Xgboost算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支 ...

  6. xgboost算法_回归建模的时代已结束,算法XGBoost统治机器学习世界

    作者 | 冯鸥 发布 | ATYUN订阅号 Vishal Morde讲了这样一个故事:十五年前我刚完成研究生课程,并以分析师的身份加入了一家全球投资银行.在我工作的第一天,我试着回忆我学过的一切.与此 ...

  7. 机器学习集成学习进阶Xgboost算法案例分析

    目录 1 xgboost算法api介绍 1.1 xgboost的安装 2 xgboost参数介绍 2.1 通用参数(general parameters) 2.2 Booster 参数(booster ...

  8. 机器学习算法(15)之Xgboost算法

    前言:前一篇文章对boosting的两个方法做了阐述,这篇文章将会是对前两篇文章的深化,谈的是一个更加优化了的boostIng算法,自从2014年9月份在 Kaggle 的希格斯玻色子机器学习大赛中夺 ...

  9. Python机器学习笔记:XgBoost算法(亲测)

    前言 1,Xgboost简介 Xgboost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器.因为Xgboost是一种提升树模型,所以它是将许多 ...

  10. xgboost算法_手把手机器学习实战系列:xgboost 算法

    算法简介 xgboost算法是一种boosting的集成学习算法,是将多个弱学习模型进行组合,从而获得更好的效果,使得组合后的模型有更强的泛化能力, 它通常是由基本的回归树(CART)树模型组成 如图 ...

最新文章

  1. U^2-Net跨界肖像画,完美复刻人物细节,GitHub标星2.5K+
  2. 责任链模式 和观察者模式
  3. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
  4. oracle使用nbu的必要,nbu恢复oracle,使用与源备份端不同用户问题解决
  5. 我的Python之路:浏览器模拟
  6. python程序设计基础
  7. Flash课堂计分板
  8. java的class文件在哪里_传统上,你在哪里存储Java .class文件?
  9. POS机31个基础知识你了解多少?
  10. java时间段的查询_JAVA实现按时间段查询数据操作的方法
  11. html5的header标签
  12. github+gitee上传源码 git工具的安装和使用
  13. 要读的书---培根说:历史使人明智,诗词使人巧慧,算学使人精密,哲理使人深刻,伦理学人庄重,逻辑修辞使人善辩。...
  14. 一键获取谷歌网盘(Google Drive)真实直链下载地址
  15. 小米为何要进军空调业?这个行业的技术壁垒有多高?
  16. 华为IT“智”存高远,普“慧”于民
  17. Numpy给数组增加维度的操作
  18. 宣传片制作的十大步骤
  19. 打开PS是出现“该内存不能为read”是怎么回事?
  20. 如何为成品主机检验制定抽样检索表

热门文章

  1. 计算机学院姚茜,武汉理工大学第三届届学位评定委员会
  2. linux防火墙应用,Linux防火墙iptables基本应用
  3. mysql获取当前时间示范,mysql 实时显示当前运行的sql语句
  4. zabbix监控mysql集群_zabbix监控elasticsearch集群
  5. 对于elemnet-ui的el-upload的使用总结(移除上传文件判断,action等问题)
  6. 我的实用设计模式之关于Policy-based design
  7. 大数据时代,CRM帮助企业进行升级转型
  8. NodeJS stream 一:Buffer
  9. NO.109 禅道“红火”新年小礼,祝大家2014红红火火~~
  10. linux命令完整篇