深入浅出学习决策树

浏览: 1538

 泰坦尼克号当年撞上冰山,裂成两半沉入冰冷的大西洋;

  911劫持飞机撞向双子塔;超强海啸吞没人群……

  历史发生的灾难数不胜数

  是否想过,如果发生灾难,你活下来的概率是多少?

  接下来本AI用算法帮你预测你的存活率!

  以下内容翻译自Algobeans

  基于人道考虑,妇女儿童是优先获得帮助的,也就是有更高的生存机率。

  判断自己是否属于这些特权群体将有助于预测你是否能活下来,那么如何判断呢?

  ?? 为了识别哪些组具有更高的存活率

  你可以使用决策树(decision trees)技能

  决策树定义

  决策树通过询问关于您是否属于某些组的一系列问题来引导您进行预测(参见图1)。每个问题只能有2个可能的响应,例如“是”对“否”。您从顶层问题开始,称为根节点,然后根据您所属的组移动树枝,直到到达叶节点。在该叶节点的幸存者的比例将是你预测的生存机会。

  tips:虽然在这里我们用决策树预测的生存率,但其实它也可广泛的应用于其它预测中。

Clipboard Image.png


  决策树是通用的,因为它们可以处理关于分类分组(例如男性与女性)或关于连续值(例如收入)的问题。如果问题是关于连续值,它可以分成组: 例如,比较“高于平均水平”和“低于平均水平”的值。

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



(图2)

  举个栗子:

  拿泰坦尼克号开刀,预测下哪些乘客组更有可能生存。

  ps:数据集最初是由英国贸易委员会编制的,以调查该船的下沉。在此示例中使用的数据是原始数据的子集,并且是在R中可自由获得的内置数据集之一。

  开始吧!首先计算决策树以预测存活率,生成以下内容:


(图3.预测泰坦尼克号是否会沉没)

  从决策树上可以得出,如果你是在第一/二级客舱的男性乘客,或是在第一/二客舱的女性乘客,你都有很大的概率被救出。

  说的好像是废话,其实并不。以上的例子是非常简单的情况,在处理复杂问题时,决策树的优势就更加容易体现了。那么如何生成决策树呢?

  生成决策树:

  首先,将所有数据点拆分为两个组,将相似的数据点分组在一起,然后在每个组内重复二进制拆分过程。

  这样,每个后续叶节点将具有更少但更均匀的数据点。决策树的基础是通过经由树中的不同路径隔离“幸存者”的群组,同时,属于那些路径的任何其他人也将被预测为可能的“幸存者”。

  重复分割数据以获得同构群组的过程称为递归分割

  它只涉及2个步骤,在下面的动画GIF中说明:

  步骤1:确定将数据点分成两个最均匀的组的二进制问题。

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

0.gif

 有各种可能的停止标准:

  - 当叶子上的数据点全部具有相同的预测类别/值时停止

  - 当叶子包含少于五个数据点时停止

  - 当进一步分支不提高均匀性超过最小阈值时停止

  使用交叉验证来选择停止标准,以确保决策树可以绘制新数据的准确预测。

  由于递归分区仅使用最佳二进制问题来生长决策树,因此非重要变量的存在不会影响结果。此外,二进制问题对分割数据点施加了中心分割,因此决策树对于极端值(即异常值)是厉害的。

  理想是美好的,但是事实上,使用标准的二进制分割数据有可能得不到最准确的预测,有时,在最初使用不太有效的分隔反而能在最后得到更好的预测。

  为了解决这个问题,我们可以选择二进制问题的不同组合来生长多个树,然后使用这些树的聚合预测。这种技术被称为随机森林

  或者,我们可以策略性地选择它们,使得每个后续树的预测准确性递增地改进。然后,获取来自所有树的预测的加权平均值。这种技术称为梯度提升

  虽然随机森林和梯度提升往往产生更准确的预测,但它们的复杂性使得解决方案更难以可视化。因此,它们通常被称为“黑箱”。另外,我们可以使用树图来检查来自决策树的预测。

new image - 4v5wl.jpg

推荐 0
本文由 datakong 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册