XGBoost VS 深度学习
Posted 5211314jackrose
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XGBoost VS 深度学习相关的知识,希望对你有一定的参考价值。
观点1:XGBoost要比深度学习更重要。2016年Kaggle大赛29个获奖方案中,17个用了XGBoost。因为它好用,在很多情况下都更为可靠、灵活,而且准确;在绝大多数的回归和分类问题上,XGBoost的实际表现都是顶尖的。
观点2:针对非常要求准确度的那些问题,XGBoost确实很有优势,同时它的计算特性也很不错。然而,相对于支持向量机、随机森林或深度学习,XGBoost的优势倒也没到那种夸张的程度。特别是当你拥有足够的训练数据,并能找到合适的深度神经网络时,深度学习的效果就明显能好上一大截。
观点3:深度学习和XGBoost并不截然对立(XGBoost发起人-陈天奇博士)。两种方法在其各自擅长领域的性能表现都非常好:
-
XGBoost专注于模型的可解释性,而基于人工神经网络的深度学习,则更关注模型的准确度。
-
XGBoost更适用于变量数较少的表格数据,而深度学习则更适用于图像或其他拥有海量变量的数据。
不同的机器学习模型适用于不同类型的任务:
- 深度神经网络通过对时空位置建模,能够很好地捕获图像、语音、文本等高维数据。
- 基于树模型的XGBoost则能很好地处理表格数据,同时还拥有一些深度神经网络所没有的特性(如:模型的可解释性、输入数据的不变性、更易于调参等)。
这两类模型都很重要,并广泛用于数据科学竞赛和工业界。我们需要全面理解每一种模型,并能选出最适合你当前任务的那个。XGBoost、深度神经网络与其他经常要用的机器学习算法(如因子分解机、logistic回归分析等),值得机器学习行业的每一位从业者关注。这里没有一药能解百病的说法。
XGBoost性能:
1)运行很快: 1.内存优化,大部分的内存分配在第一次加载中就完成了,之后便不再涉及动态内存分配的问题; 2.缓存线优化,训练模式尽可能善用缓存机制; 3.模型自身的改善,我们开发出模型的各种变体,从而令算法本身更具强健性、更加准确 - Introduction to Boosted Trees(http://xgboost.readthedocs.org/en/latest/model.html); 4.C++和并行计算。
2)在资源有限情况下仍能适用于大型数据集: 1.不断探索该工具的极限,以最大限度地利用计算资源,使得在在一个节点上就能运行多个实例; 2.使用扩展内存的版本,允许数据存在硬盘上,不必把所有数据导入内存; 3.分布式版本对XGBoost的每一个节点都进行过优化,可以有效地在更少节点上处理更大的数据集。
以上是关于XGBoost VS 深度学习的主要内容,如果未能解决你的问题,请参考以下文章
遇事不决,XGBoost,梯度提升比深度学习更容易赢得Kaggle竞赛
遇事不决,XGBoost,梯度提升比深度学习更容易赢得Kaggle竞赛
遇事不决,XGBoost,梯度提升比深度学习更容易赢得Kaggle竞赛
Windows下快速安装Xgboost(无需Git或者VS)
2020新书企业级机器学习: Spark XGBoost LightGBM, NLP, Keras深度学习, 367页pdf