作者:Abhishek Sharma
翻译:陈超
校对:丁楠雅
本文长度为4600字,建议阅读20分钟
本文以银行贷款数据为案例,对是否批准顾客贷款申请的决策过程进行了算法构建,并对比了决策树与随机森林两种机器学习算法之间的异同及各自的优劣。
标签:算法,初学者,分类,机器学习,Python,结构化数据,监督
用一个简单的比喻来解释决策树 vs 随机森林
让我们从一个思维实验来阐述决策树和随机森林之间的差异。
假设一个银行要给一位顾客批准一笔小额贷款,银行需要迅速做出决策。银行检查了这位顾客的信用记录和他的财政状况,并发现他还没有还上之前的贷款。因此,银行拒绝了他的申请。
但是,这笔贷款跟银行所拥有的巨额资金相比实在是小的可怜,银行本可以轻易地批准这笔贷款并且也不会承担很多风险。于是,银行失去了一次赚钱的机会。
现在,银行又来了一个贷款申请,但是这次银行想出了一种不同的策略——多重决策过程。有时它会先检查信用历史,有时它会先检查顾客的财政状况和贷款额度。然后,银行会把这些多重决策过程的结果进行整合,并最终决定是否将贷款发放给顾客。
即使这个过程比之前更费时,但是银行依然能够通过此途径获利。这是一个基于单一决策过程进行集合决策的经典案例。现在,我的问题来了——你知道这两个过程表征的是什么吗?
这里是决策树和随机森林,我们将详细探究这种观点,深入挖掘两种方法的主要差异,并且对关键问题进行回复——你应该选择那种机器学习算法?
目录
决策树简介
随机森林概览
随机森林和决策树的冲突(代码)
为什么随机森林优于决策树?
决策树vs随机森林——你应该在何时选择何种算法?
决策树简介
决策树是一种有监督的机器学习算法,该方法可以用于解决分类和回归问题。决策树可以简单地理解为达到某一特定结果的一系列决策。这里是一幅决策树的阐述图(使用我们上面的案例):
让我们来理解这棵树是如何工作的。
首先,它检查了顾客是否有良好的信用历史。基于此,它将顾客分为两组,也就是良好信用组和不良信用组。然后,它检查了顾客的收入,并再次将顾客分为两类。最后,它检查了顾客申请的贷款额度。基于这三种特征的检测,决策树会决定是否通过顾客的贷款申请。
特征/属性和调节可能会随着数据和问题复杂度的改变而改变,但是整体的理念是一致的。所以,一棵决策树会基于一系列特征做出一系列的决策,在本例中是信用历史、收入和贷款额度。
现在,你可能会疑惑:
“为什么决策树会先检测信用得分而不是收入呢?”
特征重要性和特质的检测顺序是基于如基尼不纯度指数或信息增益等标准来决定的。这些概念的解释不在本文所探讨的范围内,但是你可以通过以下的资料来学习决策树相关知识:
基于树的算法:从零开始的完整教程(R & Python)
https://www.analyticsvidhya.com/blog/2016/04/tree-based-algorithms-complete-tutorial-scratch-in-python/?utm_source=blog&utm_medium=decision-tree-vs-random-forest-algorithm
从决策树开始(免费课程)
https://courses.analyticsvidhya.com/courses/getting-started-with-decision-trees?utm_source=blog&utm_medium=decision-tree-vs-random-forest-algorithm
注:本文的想法是比较决策树和随机森林。因此,我不会详细解释基本概念,但是我将提供相关链接以便于你可以进一步探究。
随机森林概览
决策树算法很容易理解和解释。但是通常来说,一棵简单的树并不能产生有效的结果。这就是随机森林算法的用武之地。
随机森林是基于树