XGBoost与深度学习到底孰优孰劣?都说XGBoost好用,为什么名气总不如深度学习?

栏目: 编程工具 · 发布时间: 7年前

内容简介:XGBoost与深度学习到底孰优孰劣?都说XGBoost好用,为什么名气总不如深度学习?

XGBoost与深度学习到底孰优孰劣?都说XGBoost好用,为什么名气总不如深度学习?

本文长度为 1600字 ,建议阅读 3分钟

本文分析XGBoost与深度学习的差异,分享XGBoost的应用。

AlphaGo大战柯洁、李世石后,所有人都能谈上几句深度学习。人工智能在围棋上的这场突破,最终还要归功于机器学习三巨头三十年如一日的长期研究。

相比之下,横扫Kaggle大赛的XGBoost(去年的29个获奖方案中,有17个是用XGBoost),名气可就小太多了。更何况,它的发起人还只是个名不见经传的年轻人。

有人打抱不平说,XGBoost要比深度学习更重要,这一点毫无疑问。

因为它好用,在很多情况下都更为可靠、灵活,而且准确;在绝大多数的回归和分类问题上,XGBoost的实际表现都是顶尖的。

当然,不买账的人也不少。

某Quora撰文写到,针对准确度要求很高的那些问题,XGBoost确实很有优势,同时它的计算特性也很不错。然而,相对于支持向量机、随机森林或深度学习,XGBoost的优势倒也没到那种夸张的程度。特别是当你拥有足够的训练数据,并能找到合适的深度神经网络时,深度学习的效果就明显能好上一大截。

还有用户打趣说,XGBoost的名气坏在它的名字上,深度学习一听就非常高大上,XGBoost再怎么包装也是书呆子气十足。

那么,XGBoost的发起人又是怎么说的呢?

XGBoost的发起人——陈天奇博士,他并不认可将深度学习和XGBoost截然对立起来。他谈到,这两种方法在其各自擅长领域的性能表现都非常好:

  • XGBoost专注于模型的可解释性,而基于人工神经网络的深度学习,则更关注模型的准确度。

  • XGBoost更适用于变量数较少的表格数据,而深度学习则更适用于图像或其他拥有海量变量的数据。

到底,XGBoost与深度学习孰优孰劣?

陈天奇在Quora上的解答如下:

不同的机器学习模型适用于不同类型的任务。深度神经网络通过对时空位置建模,能够很好地捕获图像、语音、文本等高维数据。而基于树模型的XGBoost则能很好地处理表格数据,同时还拥有一些深度神经网络所没有的特性(如:模型的可解释性、输入数据的不变性、更易于调参等)。

这两类模型都很重要,并广泛用于数据科学竞赛和工业界。举例来说,几乎所有采用机器学习技术的公司都在使用tree boosting,同时XGBoost已经给业界带来了很大的影响。

作为一名机器学习研究者,我一直在用深度学习和XGBoost。我相信,我们需要全面理解每一种模型,并能选出最适合你当前任务的那个。XGBoost、深度神经网络与其他经常要用的机器学习算法(如因子分解机、logistic回归分析等),值得机器学习行业的每一位从业者关注。这里没有一药能解百病的说法。

既然提到XGBoost在业界已经有广泛的应用,那么到底又有哪些呢?

XGBoost实际用例不完全列表

dmlc/xgboost( https://github.com/dmlc/xgboost/tree/master/demo#usecases

  • 使用XGBoost的Kaggle获奖方案可在这里找到:

  • 使用XGBoost的Seldon预测服务Iris

  • 使用XGBoost的Graphlab Create

  • 腾讯数据平台把分布式版本的XGBoost用于微信内的购买点击预测

  • 汽车之家把分布式版本的XGBoost用于展示广告的点击率预测

谈了XGBoost的应用范围,再来客观聊聊XGBoost的性能。 说到性能,就不得不说到它的一个突出特点——运行很快。

XGBoost运行很快

至于它为什么这么快,有人说C++和并行计算是主要原因,而陈天奇则一针见血说到,性能原本就是XGBoost最初的设计目标:

比如:

  • 内存优化,大部分的内存分配在第一次加载中就完成了,之后便不再涉及动态内存分配的问题。

  • 缓存线优化,训练模式尽可能善用缓存机制。

  • 模型自身的改善,我们开发出模型的各种变体,从而令算法本身更具强健性、更加准确。详见:Introduction to Boosted Trees(http://xgboost.readthedocs.org/en/latest/model.html) 。

另外,性能不仅仅意味着速度上的提升,在资源有限情况下你仍能对大型数据集使用该算法:

  • 我们不断探索该 工具 的极限,以最大限度地利用计算资源,让你在一个节点上就能运行多个实例。

  • 使用扩展内存的版本,允许数据存在硬盘上,不必把所有数据导入内存。

  • 分布式版本对XGBoost的每一个节点都进行过优化,让你可以有效地在更少节点上处理更大的数据集。

原文链接:

https://github.com/dmlc/xgboost/tree/master/demo#usecases

为保证发文质量、树立口碑,数据派现设立 “错别字基金” ,鼓励 读者积极纠错

若您在阅读文章过程中发现任何错误,请在 文末留言 ,或到 后台反馈 ,经小编确认后,数据派将向检举读者发 8.8元红包

同一位读者指出 同一篇文章 多处错误,奖金不变。不同读者指出同一处错误,奖励第一位读者。

感谢一直以来您的关注和支持,希望您能够监督数据派产出更加高质的内容。


以上所述就是小编给大家介绍的《XGBoost与深度学习到底孰优孰劣?都说XGBoost好用,为什么名气总不如深度学习?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

常用算法程序集

常用算法程序集

徐士良 编 / 清华大学 / 2004-1 / 48.00元

本书针对工程中常用的行之有效的算法而编写,其主要内容包括多项式的计算、复数运算、随机数的产生 、矩阵特征值与特征向量的计算、线性代数方程组的求解、非线性方程与方程组的求解、插值与逼近、数值积分、常微分方程组的求解、数学变换与滤波、特殊函数的计算、排序和查找。 书中所有的算法均用C语言描述,并存放在一张光盘上。 本书可供广大科研人员、工程技术人员以及管理工作者阅读使用,也......一起来看看 《常用算法程序集》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具