这个问题可以从几个维度来分析。但先要说明决策树就是决策树,随机森林和xgboost的性能提升主要是来自于集成学习。所以,我们扩展一下题目把对比延伸到:
我的看法是,单棵决策树的用途已经比较有限了,已经基本被集成决策树代替。而决策树集成模型和神经网络有不同的使用场景,不存在替代一说。给出一个较为通用的看法仅供参考:
用个不恰当的比喻,集成树模型就像Python,而神经网络就像C++。前者简单粗暴效果好,容易上手优点多,后者比较精贵更为复杂但严肃项目上潜力很大。如果你愿意好好学习数据结构、内存分配和要命的指针,C++几乎无所不能。但如果你只打算写个简单的网络爬虫,Python十行就可以搞定。
决策树是1963年被 Morgan和Sonquist提出的[5],通过类树的结构实现分类和回归。我们一般认为决策树模型:
随机森林是Breiman提出的[10],模型使用集成的学习来降低单棵决策树中的高方差(high variance)从而提高了整体的预测能力。而gradient boosting machine(GBM) [9]和xgboost [8]分别是在2001年和2014年提出的。鉴于两者比较相似放在一起讨论,这两个模型:
根据各种各样实践和研究来看,随机森林、GBM和xgboost都明显优于普通的单棵决策树,所以从这个角度来看,单棵决策树可以被淘汰了。
而单棵决策树最大的护城河在于,它可以被很轻松的可视化甚至是提取规则分类规则。而集成学习在这一点是很难做到的[34]。而可解释化对于工业界很多时候是很重要的,从这个角度来看,决策树还有一点点立身之本。但这个使用的前提是,一定一定要确定决策树的表现不错(比如查看交叉验证的结果)再来可视化和规则提取,不然很有可能提取到无效甚至是错误的规则。
随机森林的作者曾经实现过可视化,但远不如决策树直观,xgboost支持单棵树的可视化。从某个角度上来看,或许对xgboost中较为可靠和稳定的单棵树进行可视化可以彻底淘汰决策树。
神经网络已经是我们很熟悉的算法了,最大能力就是从复杂的数据中进行特征表示,也被认为可以近似表示任何函数(假设有特定多的node) [3],现在如此火爆的深度学习就是深度较大的神经网络的特定叫法。神经网络和集成树模型在以下几点上有较大的不同:
一般来说,在小数据量多特征下,集成的树模型往往优于神经网络。随着数据量增大,两者表现趋于接近,随着数据量继续上升,神经网络的优势会逐步体现。这个跟很多答主提到的一样:随着数据量上升,对模型能力的要求增加而过拟合的风险降低,神经网络的优势终于有了用武之地而集成学习的优势降低。
综上来看,大部分项目建议使用集成决策树,首推xgboost,速度快效果好用时少。特定的复杂且数据量大的项目,建议还是老老实实的为神经网络调参,拿出debug C++ pointer的精神来。
所以暂时来看,已经被替代的是单棵决策树,而集成决策树还非常重要甚至变得更为重要。在短时间内,看不到集成决策树模型被替代的可能 ʕ•ᴥ•ʔ
* 另推荐一篇有趣但有点过时的文章[7],其中对比了各种各样的算法并给出作者的分析。
[1] A. Géron, Hands-on machine learning with Scikit-Learn and TensorFlow: concepts, tools, and techniques to build intelligent systems. O'Reilly Media, 2017.
[2] F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg and J. Vanderplas, “Scikit-learn: Machine learning in Python,” J. Mach. Learn. Res., vol. 12, pp. 2825-2830, 2011.
[3] K. P. Murphy. Machine learning: a probabilistic perspective. MIT press. 2012.
[4] R. Punnoose and P. Ajit, “Prediction of employee turnover in organizations using
machine learning algorithms,”International Journal of Advanced Research in Artificial Intelligence, vol.5, pp. 22-6, 2016.
[5] J. N. Morgan and J. A. Sonquist, “Problems in the analysis of survey data, and a
proposal,” J. AM. Stat. Assoc., vol. 58, pp. 415-434, 1963.
[6] J. Friedman, T. Hastie and R. Tibshirani, The elements of statistical learning. New York: Springer series in statistics, 2001.
[7] S. B. Kotsiantis, “Supervised Machine Learning: A Review of Classification Techniques,” Informatica, vol. 31, pp. 249-268, 2007.
[8] T. Chen and C. Guestrin, “Xgboost: A scalable tree boosting system,” in Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining, 2016, pp.785-794. ACM.
[9] H. Friedman, “Greedy function approximation: a gradient boosting machine,” Ann. Stat., pp. 1189-1232, 2001.
[10] L. Breiman, “Random forests,” Machine learning, vol. 45, pp. 5-32. 2001.