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好用,为什么名气总不如深度学习?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

ActionScript 3.0 Cookbook

ActionScript 3.0 Cookbook

Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50

Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试