【.com快译】众所周知,决策树在现实生活中有很多实际场景,它深刻地影响着包括分类和回归在内的非常广泛的机器学习领域。可以说,在各种决策分析中,决策树可以起到直观清晰的决策辅助作用。什么是决策树?决策树是一系列相关选择的可能结果的“展示”。它允许个人或组织根据成本、概率和收益权衡各种可能的行动。顾名思义,决策树使用树状决策模型。它既可以用来促进各种非正式讨论,也可以用来“绘制”算法来预测那些数学上的最佳选择。决策树通常从单个节点开始。该节点可以分支出各种可能的结果。同时,这些结果会导致新节点的产生,这些节点会不断分支出其他类型的可能性。因此,这些最终形成了树状结构。决策树中通常有三种不同类型的节点:机会节点、决策节点和结束节点。圆圈代表的机会节点代表某些结果的概率;方块代表的决策节点代表要做出的各种决策;末端节点表示决策路径的最终结果。决策树的优点和缺点优点决策树能够生成各种可理解的规则。决策树无需大量计算即可执行分类。决策树能够处理连续变量和分类变量。决策树清楚地显示哪些字段对于预测或分类最重要。缺点决策树不太适合以预测连续属性值为目标的估计任务。决策树在面对类多、训练样本相对少的分类问题时容易出错。在训练过程中,决策树的计算开销比较大。在每个节点,我们必须对每个候选字段进行排序,然后才能找到其最佳拆分。一些算法使用字段组合来搜索最佳权重组合。此外,修剪算法(https://www.edureka.co/blog/implementation-of-decision-tree/)将更加昂贵,因为必须形成和比较各种候选子树。创建决策树让我们考虑这样一个场景:一群天文学家发现了一颗新行星,并对以下问题感兴趣:它会是下一个地球吗?显然,值得深入研究的决定因素有很多,包括:地球上是否存在水,温度是多少,地表是否容易遭受持续风暴,植物和动物是否可以在这种特定气候下生存,等等。接下来,让我们通过创建决策树来确定它是否是人类的下一个“栖息地”。首先,我们将宜居温度设置在0到100摄氏度之间。第二,有水吗?那么,动植物繁盛吗?最后,地球表面有风暴吗?至此,我们有了一个完整的决策树。分类规则分类规则是:在考虑了所有的可能性之后,为每个场景分配一个类变量。类变量我们为每个叶节点分配一个类变量。类变量会直接影响我们判断的最终输出。让我们从上面创建的决策树中推导出以下分类规则:1.如果温度不在273和373K(开尔文,热力学单位)之间,则认为:难以生存。2、如果温度在273-373K之间,又没有水,则认为:难以成活。3、如果温度在273-373K之间,有水,但没有动植物,则认为:难以生存。4.如果温度在273-373K之间,有水,有动植物,没有地表风暴,则认为:有生存可能。5、如果温度在273-373K之间,有水,有动植物,但有地表风暴,则认为:生存困难。决策树此示例的决策树由以下部分组成:根节点:在上面的示例中,因素“温度”被视为根。内部节点:具有一条入边和两条或多条出边的节点。叶节点:不再有出边的端节点。根据以上三部分,我们从根节点开始,逐条检查测试条件,将判断结果(或控制)赋值给其中一条出边,使其作为另一个节点的入边,进行下一轮条件测试。当遍历所有测试条件并到达叶节点时,决策树就完成了。叶节点包含各种类标签是否批准决定(判断)。你一定很疑惑:为什么我们要用“温度”属性作为根来构造决策树呢?如果我们选择其他属性会有什么不同?的确,不同的属性特征会创造出许多不同的树。我们需要通过一些算法来选择最好的决策树。让我们讨论一种称为“贪心法”的决策树创建算法。贪婪法则根据维基百科,贪婪法则基于启发式问题解决(HeuristicProblemSolving)的概念,在每个节点做出局部最佳选择。然后通过这些局部最优选择,在全局范围内找到一个近似最优解。该算法包括:1.在每个阶段(节点),选择最好的特征作为测试条件。2.然后将节点拆分成各种可能的输出(内部节点)。3、重复以上步骤,直到叶子节点中遍历完所有的测试条件。我们回到刚才的问题:如何选择初始测试条件?这里会涉及到两个概念:熵(Entropy)和信息增益(InformationGain)。熵:在决策树中,熵代表同质性。如果数据完全均匀,则熵为0;否则,如果数据被拆分(例如50乘以50%),则熵为1。信息增益:信息增益表示节点被拆分时熵值的增加和减少。我们的目的是使选择进行分裂的属性特征具有最大的信息增益。因此,我们需要根据熵和信息增益的计算值,在任何特定步骤中选择最佳属性。我们来看下图中的一组数据:我们可以根据上图中各个维度的属性特征的集合,画出一系列不同类型的决策树。下面是两个创建实验:树创建实验1:这里我们以“学生”的属性特征作为初始测试条件,其决策树如下图所示。造树实验2:同样,我们可以选择“收入”作为测试条件,如下图:使用贪心法则创建***的决策树这里,我们涉及到两个类:“是”表示这个人会买电脑;“不”就是不买。要计算熵和信息增益,让我们看看这两个类别各自的概率值。?正数:“buys_computer=yes”的概率为:?负数:“buys_computer=no”的概率为:D的熵:我们将概率值代入上式求出熵。在准备阶段,我们预先对熵的值进行分类,分别是:熵=0:数据完全均匀(纯)熵=1:数据分为50%vs.50%(不纯)由于我们计算出的熵值为0.940,说明是不纯的。让我们通过深入研究找出合适的属性特征来计算信息增益。如果我们在“年龄”上进行拆分,那么我们就可以根据不同的年龄阶段来区分是否购买电脑产品。例如,对于30岁及以下的人群,2人购买(是),3人不购买(否)电脑。然后我们计算三个年龄段的人最后一列(是否购买电脑)的Info(D)(拆分年龄属性特征值)。可以看出,信息增益是总Info(0.940)与以年龄为属性计算的Info(0.694)的差值。因此,如果我们使用“年龄”作为要拆分的属性,这就是我们要考虑的因素。同理,我们也可以计算剩余属性特征维度的“信息增益”,如:信息增益(年龄)=0.246信息增益(收入)=0.029信息增益(学生)=0.151信息增益(信用等级)=0.048通过以上数值的综合比较,不难发现“age”的“信息增益”为***,因此,拆分“age”是一个更好的决策。由此可见,我们应该创建的最佳决策树应该如下图所示:从上图可以看出,我们应该按照以下逻辑“画出”决策树的分类规则:如果某人的年龄小于30岁,又不是学生,则不会购买该产品。Age(<30)^student(no)=NO如果某人的年龄小于30岁并且是学生,那么他将购买该产品。Age(<30)^student(yes)=YES如果某人的年龄在31到40岁之间,那么他最有可能购买该产品。Age(31…40)=YES如果某人超过40岁并且信用等级非常好,那么他将不会购买该产品。Age(>40)^credit_rating(excellent)=NO如果某人超过40岁且信用评级尚可,那么他很可能会购买该产品。Age(>40)^credit_rating(fair)=Yes这是我们根据上面的例子实现的最好的决策树。原标题:HowtoCreateaPerfectDecisionTree,作者:UpasanaPriyadarshiny
