新手不可不知的决策树教程

商业分析前哨

发布时间: 17-10-1308:55

“你能幸免于难吗?”

某些群体,如妇女和儿童,在遇到灾难时可能会首先获得帮助,因此能获得更高的生存机会。去了解你是否属于这些特权群体,将有助于预测你是否能存活。为了确定哪些群体具有较高的存活率,我们可以使用决策树。

虽然我们这里只用决策树来预测生存率,但决策树其实有着广泛的应用。在其他业务环境中,决策树可以用于定义用户画像或预测辞职。

1 定义

决策树通过询问一系列你是否属于某些群体的问题,来引导你进行预测(参见图1)。每个问题可能的答案只能有2个,例如“是”或“否”。从最顶层的问题(根节点)开始,然后根据你所属的组沿着树枝移动,直到到达叶子节点。幸存者在该叶子节点的比例,即是预测出的你的生存几率。

图1 决策树举例

决策树应用广泛,可以处理关于分类分组(例如男性与女性),也可以处理连续值问题(例如收入)。如果问题是连续值问题,它可以将结果分为几组,例如比较“高于平均水平”和“低于平均值”的不同值。

在标准决策树中,可能的答案只能有2个,例如“是”或“否”。如果想测试三个或更多的答案(“是”,“否”,“有时”),可以给树添加更多分支(见图2)。

图2 在决策树中检测

2 案例

我们使用命运多舛的泰坦尼克号的旅客数据,来检测是否某些乘客群体更有可能幸存。该数据集最初由英国贸易委员会收集以调查该船的沉没原因。本示例中使用的数据是原始数据的一个子集,也是R软件里供用户自由使用的内置数据集之一。

计算决策树以预测存活率,具体过程如下:

图3 预测你是否能够从泰坦尼克号沉没事件中存活

从结果来看,如果你是一级/二级舱的女性或者是一级/二级舱的男孩,似乎更有可能从泰坦尼克号被救出。

因为决策树很容易解释,所以很受欢迎。那么问题来了,如何生成决策树呢?

3 技术说明

首先将所有数据点分成两组,将相似的数据点分在一组,然后在每个组内重复二进制分割过程,以此来生成决策树。生成结果是,每个后续的叶子节点将具有更少但更同质的数据点。决策树的基础是通过树中的不同路径隔离出“幸存者”群体,属于这些路径的任何人都将被预测为可能的“幸存者”。

重复划分数据以获得同质数据组的过程被称为递归分区。它仅涉及两个步骤,如下面所示:

步骤1:识别将数据点分解成最均匀的两个组的二分问题。

步骤2:对于每个叶节点重复步骤1,直到达到终止标准。

有各种可能的终止标准:

- 当叶子节点的数据点都是相同的预测类别/值时终止

- 当叶片节点包含的数据点少于五个时终止

- 当进一步的分支在超出最小阈值范围的情况下也无法提高同质性时终止

使用交叉验证来选择终止标准,以确保决策树可以为新数据绘制准确的预测路径。(交叉验证将在以后的文章中进行说明)

由于递归分区只使用最合适的二分问题来生成决策树,所以非重要变量不会影响结果。此外,二分问题对数据点集进行中心分割,因此决策树对极值(即异常值)是具有包容性的。

4 使用限制

在开始时使用最合适的二分问题分割数据可能不会得到最准确的预测。有时,最初使用没那么有效的分割可能会得到更好的预测。

为了解决这个问题,我们可以选择组合不同的二分问题来生成多个树,然后使用这些树的聚合来进行预测。这种技术即随机森林。或者,不是随机地组合二分问题,而是策略性地选择,使得每个随后的树的预测精度逐渐增加。然后,取所有树的加权平均预测值。这种技术称为梯度提升决策树。

虽然随机森林和梯度提升决策树更能产生准确的预测,但其复杂性使得解决方案难以可视化。因此,它们通常被称为“黑匣子”。另一方面,决策树的预测结果可以使用树形图来检查。了解哪些预测因素是重要的,使我们能够制定更有针对性的干预措施。

举报/反馈