内容简介: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好用,为什么名气总不如深度学习?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 直观理解深度学习基本概念(小白入门深度学习)
- 深度学习的关键:无监督深度学习简介(附Python代码)
- 微软收购深度学习初创公司Lobe 以帮助创建深度学习模型
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
- Python猫荐书系列:文也深度学习,理也深度学习
- 【ENVI深度学习】使用ENVI深度学习工具快速识别蔬菜大棚
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。