0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

XGBoost号称“比赛夺冠的必备大杀器”,横扫机器学习竞赛罕逢敌手

DPVg_AI_era 来源:lq 2019-04-30 09:01 次阅读

XGBoost号称“比赛夺冠的必备大杀器”,横扫机器学习竞赛罕逢敌手,堪称机器学习算法中的新女王!

在涉及非结构化数据(图像、文本等)的预测问题中,人工神经网络显著优于所有其他算法或框架。但当涉及到中小型结构/表格数据时,基于决策树的算法现在被认为是最佳方法。而基于决策树算法中最惊艳的,非XGBoost莫属了。

打过Kaggle、天池、DataCastle、Kesci等国内外数据竞赛平台之后,一定对XGBoost的威力印象深刻。XGBoost号称“比赛夺冠的必备大杀器”,横扫机器学习竞赛罕逢敌手。最近甚至有一位大数据/机器学习主管被XGBoost在项目中的表现惊艳到,盛赞其为“机器学习算法中的新女王”!

XGBoost最初由陈天奇开发。陈天奇是华盛顿大学计算机系博士生,研究方向为大规模机器学习。他曾获得KDD CUP 2012 Track 1第一名,并开发了SVDFeature,XGBoost,cxxnet等著名机器学习工具,是Distributed (Deep) Machine Learning Common的发起人之一。

XGBoost实现了高效、跨平台、分布式gradient boosting (GBDT, GBRT or GBM) 算法的一个库,可以下载安装并应用于C++Python,R,Julia,Java,Scala,Hadoop等。目前Github上超过15700星、6500个fork。

项目主页:

https://XGBoost.ai/

XGBoost是什么

XGBoost全称:eXtreme Gradient Boosting,是一种基于决策树的集成机器学习算法,使用梯度上升框架,适用于分类和回归问题。优点是速度快、效果好、能处理大规模数据、支持多种语言、支持自定义损失函数等,不足之处是因为仅仅推出了不足5年时间,需要进一步的实践检验。

XGBoost选用了CART树,数学公式表达XGBoost模型如下:

K是树的数量,F表示所有可能的CART树,f表示一棵具体的CART树。这个模型由K棵CART树组成。

模型的目标函数,如下所示:

XGBoost具有以下几个特点:

灵活性:支持回归、分类、排名和用户定义函数

跨平台:适用于Windows、Linux、macOS,以及多个云平台

多语言:支持C++, Python, R, Java, Scala, Julia等

效果好:赢得许多数据科学和机器学习挑战。用于多家公司的生产

云端分布式:支持多台计算机上的分布式训练,包括AWS、GCE、Azure和Yarn集群。可以与Flink、Spark和其他云数据流系统集成

下图显示了基于树的算法的发展历程:

决策树:由一个决策图和可能的结果(包括资源成本和风险)组成, 用来创建到达目标的规划。

Bagging:是一种集合元算法,通过多数投票机制将来自多决策树的预测结合起来,也就是将弱分离器 f_i(x) 组合起来形成强分类器 F(x) 的一种方法

随机森林:基于Bagging算法。随机选择一个包含多种特性的子集来构建一个森林,或者决策树的集合

Boosting:通过最小化先前模型的误差,同时增加高性能模型的影响,顺序构建模型

梯度上升:对于似然函数,要求最大值,叫做梯度上升

XGBoost:极端梯度上升,XGBoost是一个优化的分布式梯度上升库,旨在实现高效,灵活和跨平台

为什么XGBoost能横扫机器学习竞赛平台?

下图是XGBoost与其它gradient boosting和bagged decision trees实现的效果比较,可以看出它比R, Python,Spark,H2O的基准配置都快。

XGBoost和Gradient Boosting Machines(GBMs)都是集合树方法,使用梯度下降架构来提升弱学习者(通常是CART)。而XGBoost通过系统优化和算法增强改进了基础GBM框架,在系统优化和机器学习原理方面都进行了深入的拓展。

系统优化:

并行计算:

由于用于构建base learners的循环的可互换性,XGBoost可以使用并行计算实现来处理顺序树构建过程。

外部循环枚举树的叶节点,第二个内部循环来计算特征,这个对算力要求更高一些。这种循环嵌套限制了并行化,因为只要内部循环没有完成,外部循环就无法启动。

因此,为了改善运行时,就可以让两个循环在内部交换循环的顺序。此开关通过抵消计算中的所有并行化开销来提高算法性能。

Tree Pruning:

GBM框架内树分裂的停止标准本质上是贪婪的,取决于分裂点的负损失标准。XGBoost首先使用'max_depth'参数而不是标准,然后开始向后修剪树。这种“深度优先”方法显著的提高了计算性能。

硬件优化:

该算法旨在有效利用硬件资源。这是通过在每个线程中分配内部缓冲区来存储梯度统计信息来实现缓存感知来实现的。诸如“核外”计算等进一步增强功能可优化可用磁盘空间,同时处理不适合内存的大数据帧。

算法增强:

正则化:

它通过LASSO(L1)和Ridge(L2)正则化来惩罚更复杂的模型,以防止过拟合。

稀疏意识:

XGBoost根据训练损失自动“学习”最佳缺失值并更有效地处理数据中不同类型的稀疏模式。

加权分位数草图:

XGBoost采用分布式加权分位数草图算法,有效地找到加权数据集中的最优分裂点。

交叉验证:

该算法每次迭代时都带有内置的交叉验证方法,无需显式编程此搜索,并可以指定单次运行所需的增强迭代的确切数量。

为了测试XGBoost到底有多快,可以通过Scikit-learn的'Make_Classification'数据包,创建一个包含20个特征(2个信息和2个冗余)的100万个数据点的随机样本。

下图为逻辑回归,随机森林,标准梯度提升和XGBoost效率对比:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4772

    浏览量

    100835
  • 机器学习
    +关注

    关注

    66

    文章

    8422

    浏览量

    132710
  • 大数据
    +关注

    关注

    64

    文章

    8894

    浏览量

    137475

原文标题:陈天奇做的XGBoost为什么能横扫机器学习竞赛平台?

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统机器
    的头像 发表于 12-30 09:16 186次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 114次阅读

    【「嵌入式系统设计与实现」阅读体验】+ 学习一个STM32的案例

    《嵌入式系统设计与实现——第六届全国大学生嵌入式芯片与系统设计竞赛芯片应用赛道优秀作品剖析》一书的基本情况。今天来学习一个具体的案例。 这本书中意法半导体的案例是最多的,尤其是第二部分,占比极高,这也
    发表于 12-06 22:22

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 426次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 489次阅读

    入门?毕设?竞赛?项目练手?STM32/嵌入式/物联网学习,有这几款开发板就够了!

    、项目练手、创新竞赛、技能认证等。01STM32入门+项目进阶学习适用场合高校教学、学生毕设、个人学习、项目练手、创新竞赛、技术认证可学习
    的头像 发表于 10-10 16:31 334次阅读
    入门?毕设?<b class='flag-5'>竞赛</b>?项目练手?STM32/嵌入式/物联网<b class='flag-5'>学习</b>,有这几款开发板就够了!

    AMD赞助多支FIRST机器竞赛团队

    AMD 在 2024 赛季赞助了多支 FIRST 机器竞赛团队。FIRST 机器竞赛旨在教导高中生如何构建能够执行特定任务的机器人,同时
    的头像 发表于 09-18 09:45 456次阅读

    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 STM32电磁小车

    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 智能车竞赛 电磁杆原理图 电磁循迹小车 智能车电磁组 STM32电磁小车 电磁循迹小车 电磁循迹算法 智能车环岛 智能车比赛规则 智能车
    的头像 发表于 08-20 10:52 664次阅读
    20.2-电磁杆在磁轨道的测试 零基础入门智能车<b class='flag-5'>竞赛</b> STM32电磁小车

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习
    的头像 发表于 07-02 11:25 1106次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1413次阅读

    2020-2022-2024年TI杯全国大学生电子设计竞赛官方推荐芯片对比分析比较

    2020-2022-2024年TI杯全国大学生电子设计竞赛官方推荐芯片对比分析比较 一年一度的TI杯全国大学生设计竞赛又正式拉开帷幕,器件清单一出来又忍不住对2024、2022年和2020年共3年
    发表于 06-25 10:25

    苏州金龙荣获首届无人扫地机器人演示比赛“竞技领跑奖”

    4月30日,2024年苏州市首届无人扫地机器人演示比赛在高新区思益街展开比拼。五家企业参赛在道路上实地比拼无人扫地机器人技术,通过清扫垃圾、识别路障等环节展现城市清洁的“未来场景”。经过角逐,苏州
    的头像 发表于 05-07 09:10 269次阅读
    苏州金龙荣获首届无人扫地<b class='flag-5'>机器</b>人演示<b class='flag-5'>比赛</b>“竞技领跑奖”

    人工智能和机器学习的顶级开发板有哪些?

    机器学习(ML)和人工智能(AI)不再局限于高端服务或云平台。得益于集成电路(IC)和软件技术的新发展,在微型控制和微型计算机上实现机器
    的头像 发表于 02-29 18:59 847次阅读
    人工智能和<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的顶级开发板有哪些?

    【技术科普】主流的深度学习模型有哪些?AI开发工程师必备

    深度学习在科学计算中获得了广泛的普及,其算法被广泛用于解决复杂问题的行业。所有深度学习算法都使用不同类型的神经网络来执行特定任务。 什么是深度学习 深度学习
    的头像 发表于 01-30 15:26 635次阅读
    【技术科普】主流的深度<b class='flag-5'>学习</b>模型有哪些?AI开发工程师<b class='flag-5'>必备</b>!

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 999次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型