导读
随机森林,梯度提升都是基于决策树的算法,那决策树到底又是什么东西呢?今天给大家先简单的介绍一下,完全是概念上的介绍,没有数学,没有公式,大家先有一个直观上的了解再说吧。
你会在灾难中幸存吗?
特定的人群,比如妇女和儿童,会首先受到救助,她们会有比较大的机会活下来。知道你是不是属于这样的特权人群,可以帮助你预测你是否能幸存。我们可以使用决策树,来发现哪种人群具有高的幸存率。
定义
决策树在预测的时候,通过问你一系列的问题,来决定你是否属于某个人群(图1),每个问题又两个可能的回答,比如“yes”或者“no”,从最顶端的的问题开始,叫做根节点,然后根据你属于哪个人群,走到对应的枝干上,直到你走到叶子节点上,在叶子节点上,幸存者的比例就是你存活的概率。
图1 决策树的例子
决策树是个多面手,可以处理类别变量或者连续变量,如果问题是关于连续变量的,可以通过分割来分成不同的组—比如,和平均值比较,分成“高于均值”和“低于均值”两组。
在标准的决策树中,应该只有两个可能的回答,也就是“yes”或者“no”,如果我们想有更多的回答(“yes”, “no”, “sometimes”),我们可以在树的下面增加枝干。
图2 在决策树中进行多类别测试
图解
我们使用一个不幸的邮轮的乘客数据,Titanic,看看是不是特定的人群生成的几率更大。我们用的数据是原始数据的一个子集。
通过决策树预测生存率,会生成下面的树:
图3 预测你是否能在泰坦尼克沉船事件中幸存
从结果看,如果你是来自一等二等舱的女性,或者来自一等二等舱的男孩子,那么你有很大的概率获救。
决策树很受欢迎,因为非常容易解释,问题是,决策树是怎么生成的?
技术解释
决策树首先将所有的数据分裂成两组,相似的数据归为相同的组,然后在各自的组中,再进行重复的二元分裂。最终,每个叶子节点会有很少的但是更加同质性的数据,决策树的基础是通过树中的不同的路径,到达“幸存者”的孤立的组,属于这些路径的数据都可以预测为“幸存者”。
重复的分隔数据,得到同质化的组的过程就叫做递归分割,包含2个步骤,可以通过下面的动图来看:
Step 1:确定要问的问题,这个问题能让分割之后的两个组中的数据具有最佳的同质性。
Step 2: 对每个叶子节点,重复Step 1,,直到满足停止条件。
有好几个不同的停止条件:
– 当叶子节点中所有的数据都是相同的类别/值,停止
– 当叶子节点的数据个数小于5,停止
– 当继续分割之后,得到的同质性的提升小于一个阈值的时候,停止
停止条件通过交叉验证的方式来选取,这样可以保证在新数据上具有最佳的准确率。
递归分裂的时候,需要选取最佳的二分类的问题,来进行树的生长,那些不显著的变量会显示出对结果没有什么影响。二值问题对数据进行了主要的分割,所以,决策树对于极端点(离群点)是鲁棒的。
限制
使用最佳的二分类问题来分割数据,可能开始的时候并不能得到最高的准确率,有时候,使用一些不太高效的分割可能会得到更好的预测。
为了解决这个问题,我们可以使用不同的二值问题的组合来生成不同的树,然后使用这些树一起进行预测。就就叫做随机森林。或者,不用随机组合二值化问题,我们可以进行有策略的选择,这样,后面的树的预测准确率会持续的提升,然后对所有的树做个加权平均,这个方法叫做梯度提升。
随机森林和梯度提升都可以得到更高的准确率,但是他们的复杂性导致了可视化比较困难,所以,常常被称作“黑盒子”。另一方面,来自决策树的预测可以使用树图来检查,学习哪个预测器更加重要,让我们可以更加有目的的介入。
作者:Annalyn Ng 编译:ronghuaiyang
原文链接:https://algobeans.com/2016/07/27/decision-trees-tutorial/
本文为专栏文章,来自:AI公园,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/76056.html 。