决策树:如何创建完美的决策树?

举报
Donglian Lin 发表于 2021/08/14 09:24:39 2021/08/14
【摘要】 决策树是一系列相关选择的可能结果的映射。它允许个人或组织根据成本、概率和收益权衡可能采取的行动。 顾名思义,它使用树状决策模型。它们可用于推动非正式讨论或制定算法,以数学方式预测最佳选择。 决策树通常以单个节点开始,该节点分支为可能的结果。这些结果中的每一个都会导致额外的节点,这些节点分支为其他可能性。这使它具有树状形状。

一个决策树在现实生活中的许多类比和原来,它已经影响了广域中号AC海因学习,涵盖ç lassification 和回归。在决策分析中,决策树可用于直观地、明确地表示决策和决策制定。

因此,我将在本博客中介绍的内容大纲如下。

  • 什么是决策树?
  • 决策树的优缺点
  • 创建决策树

什么是决策树?

决策树是一系列相关选择的可能结果的映射。它允许个人或组织根据成本、概率和收益权衡可能采取的行动。

顾名思义,它使用树状决策模型。它们可用于推动非正式讨论或制定算法,以数学方式预测最佳选择。

决策树通常以单个节点开始,该节点分支为可能的结果。这些结果中的每一个都会导致额外的节点,这些节点分支为其他可能性。这使它具有树状形状。

决策树 - 决策树 - Edureka

存在三种不同类型的节点:机会节点、决策节点和结束节点。由圆圈表示的机会节点显示某些结果的概率。由方块表示的决策节点显示要做出的决策,而末端节点显示决策路径的最终结果。

决策树的优缺点

优点

  • 决策树生成可理解的规则。
  • 决策树无需大量计算即可执行分类。
  • 决策树能够处理连续变量和分类变量。
  • 决策树清楚地表明哪些字段对预测或分类最重要。

缺点

  • 决策树不太适合目标是预测连续属性值的估计任务。
  • 决策树在分类问题中容易出错,类别多,训练样本相对较少。
  • 训练决策树在计算上可能很昂贵。生长决策树的过程在计算上是昂贵的。在每个节点上,必须对每个候选分裂字段进行排序,然后才能找到其最佳分裂。在某些算法中,使用字段组合并且必须搜索最佳组合权重。修剪算法也可能很昂贵,因为必须形成和比较许多候选子树。

创建决策树

让我们考虑一组天文学家发现一颗新行星的场景。现在的问题是它是否会成为“下一个地球”?这个问题的答案将彻底改变人们的生活方式。嗯,字面意思!

有 n 个决定因素需要彻底研究才能做出明智的决定。这些因素可能是地球上是否存在水、温度是多少、地表是否容易遭受持续风暴、动植物群是否能够在气候中存活等。

让我们创建一个决策树来确定我们是否发现了新的栖息地。

宜居温度在 0 到 100 摄氏度之间。

决策树示例 1 - 决策树 - Edureka

水是否存在?

决策树示例 2 - 决策树 - Edureka

动植物是否繁盛?

决策树示例 3 - 决策树 - Edureka

地球表面有暴风雨?

决策树示例 4 - 决策树 - Edureka

因此,我们有一个决策树。

分类规则:

分类规则是考虑所有场景并为每个场景分配一个类变量的情况。

类变量:

每个叶节点都分配了一个类变量。类变量是导致我们做出决定的最终输出。

让我们从创建的决策树中推导出分类规则:

1. 如果温度不在 273 到 373K 之间,-> 生存困难

2. 如果温度在 273 到 373K 之间,并且没有水,-> 生存困难

3. 如果温度在 273 到 373K 之间,则存在水,并且不存在动植物 -> 生存困难

4. 如果温度在 273 到 373K 之间,存在水,存在动植物群,并且不存在暴风雨的表面 -> 可能生存

5. 如果温度在 273 到 373K 之间,存在水,存在动植物群,并且存在暴风雨表面 -> 生存困难 

决策树 

决策树具有以下组成部分:

  • 根节点:在这种情况下,“温度”因素被视为根。
  • 内部节点:具有一条入边和两条或更多条出边的节点。
  • 叶节点:这是没有出边的终端节点。

由于决策树现在已构建,从根节点开始,我们检查测试条件并将控制分配给输出边之一,因此再次测试条件并分配节点。当所有的测试条件都指向一个叶节点时,就说决策树是完整的。叶节点包含类标签,它们对决定投赞成票或反对票。

现在,您可能会想为什么我们从根的“温度”属性开始?如果选择任何其他属性,构建的决策树将有所不同。

正确的。对于一组特定的属性,可以创建许多不同的树。我们需要通过遵循算法方法来选择最佳树。我们现在将看到创建完美决策树的“贪婪方法”。

贪婪的方法

“贪婪方法基于启发式问题解决的概念,通过在每个节点做出最佳局部选择。通过做出这些局部最优选择,我们可以在全局范围内达到近似最优解。”

该算法可以概括为:

1. 在每个阶段(节点),挑出最好的特征作为测试条件。

2. 现在将节点拆分为可能的结果(内部节点)。

3. 重复上述步骤,直到所有的测试条件都被耗尽到叶子节点中。

当您开始实现算法时,第一个问题是:“如何选择开始测试条件?”

这个问题的答案在于“熵”和“信息增益”的值。让我们看看它们是什么以及它们如何影响我们的决策树创建。

熵: 决策树中的熵代表同质性。如果数据完全同质,则熵为 0,否则如果数据被除 (50-50%),则熵为 1。

信息增益: 信息增益是节点分裂时熵值的减少/增加。

一个属性应该有最高的信息增益被选择用于分裂。根据熵和信息增益的计算值,我们在任何特定步骤选择最佳属性。

让我们考虑以下数据:

决策树示例 5 - 决策树 - Edureka

可以从这些属性集制定 n 个决策树。

树创建试验-1:

这里我们将属性“Student”作为初始测试条件。

决策树示例 6 - 决策树 - Edureka

树创建试验-2:

 同样,为什么选择“学生”?我们可以选择“收入”作为测试条件。

决策树示例 7 - 决策树 - Edureka

用贪心方法创建完美的决策树 

让我们遵循“贪婪方法”并构建最优决策树。

涉及两个类别:“是”,即该人是否购买计算机或“否”,即他不购买。为了计算熵和信息增益,我们正在计算这两个类别中每一个的概率值。

»Positive:对于 'buys_computer=yes' 概率为:

1-1.png


»否定:对于“buys_computer=no”,概率为:

D 中的熵:我们现在通过将概率值放入上述公式来计算熵。

31.png

我们已经对熵的值进行了分类,它们是:

Entropy =0:数据完全同质(纯)
Entropy =1:数据被分成50-50%(不纯)

我们的 Entropy 值为0.940,这意味着我们的集合几乎是不纯的
让我们深入研究,找出合适的属性并计算信息增益。

如果我们在“年龄”上分裂,信息增益是什么?
该数据表示有多少人属于特定年龄段,购买和不购买该产品。
例如,对于年龄在 30 岁或以下的人,2 人购买(是)和 3 人不购买(否)产品,信息 (D) 是针对这 3 类人计算的,在最后一列中表示.

年龄属性的信息 (D) 由这 3 个年龄值范围的总和计算得出。现在,问题是如果我们根据“年龄”属性进行拆分,“信息增益”是什么。
总信息值 (0.940) 和为年龄属性计算的信息 (0.694) 的差异给出了“信息增益”。
这是我们是否应该按照“年龄”或任何其他属性进行拆分的决定性因素。同样,我们计算其余属性的“信息增益”:
信息增益(年龄)=0.246
信息增益(收入)=0.029
信息增益(学生)= 0.151
信息增益(credit_rating)=0.048
在比较所有属性的这些增益值时,我们发现“年龄”的“信息增益”最高。因此,在“年龄”分裂是一个很好的决定。
类似地,在每次拆分时,我们比较信息增益以找出是否应该选择该属性进行拆分。
因此,创建的最优树看起来像:

决策树示例 8 - 决策树 - Edureka

这棵树的分类规则可以记为:
如果一个人的年龄小于 30 岁且他不是学生,他不会购买该产品。

年龄(<30) ^ 学生(否) = 否

如果一个人的年龄小于 30 并且他是学生,他会购买该产品。
年龄(<30) ^ 学生(是) = 是

如果一个人的年龄在 31 到 40 岁之间,他最有可能购买。

年龄(31…40) = 是

如果一个人的年龄大于 40 岁,并且信用等级非常好,他就不会购买。

年龄(>40) ^ credit_rating(优秀) = NO

如果一个人的年龄大于 40 岁,信用等级一般,他很可能会购买。
年龄(>40) ^ credit_rating(fair) = 是

因此,我们实现了完美的决策树!!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。