让我们了解没有繁琐数学运算的决策树!
基于树的方法最早是由Leo Breiman和其他三位作者:Jerome Friedman,Charles J. Stone和RA Olshen在80年代初期引入的,因此这些方法已经存在了很长时间! 它们最初是作为CART引入的:分类和回归树。
决策树是一种基于树的方法,用于有监督的机器学习问题(即,当我们使用此方法时,与无监督的学习不同,我们知道数据集的真实结果或标签)。 此方法可用于以下两种情况:1)预测问题(例如预测薪水或年龄),以及2)分类问题(例如回答是/否或对/错问题)。 在本文中,我们将看到如何将此方法用于分类问题 。 下图显示了树的组成部分(在决策树的上下文中):


想象一下,您是一名招聘经理,想预测应聘者在招聘后是否会成功工作! 您的目标是使用基于某些特征的历史数据来开发模型,这些特征描述候选人并了解使员工成功的因素。 显然,您想在聘用候选人之前对此进行预测! 因此,您想确定重要的特征,这些特征很可能是公司员工成功的指标,并使用它们来预测新员工是否会成功。
在过去的几年中,您一直在收集有关现有员工的数据,并根据他们的实际表现 (而不是数据的特征),如果某人的工作表现出色,则将其标记为“ 是 ”,如果其工作状况为“ 否 ”,则标记为“ 否 ”一个人没有。 您的数据集中有以下描述候选人的功能:姓名,学位,GPA,经验年限,实习数,项目数,奖项数和成功。 最后一列的二进制结果为“是”或“否”(如上所述)。 您想确定其中哪些是准确预测成功的重要功能。
您安装了决策树模型,并获得了以下树*作为输出(不用担心,我们稍后将详细介绍一些细节):


*我并没有使用数据集中所有可用的功能,只是为了使树变小并且易于理解。
首先,检查候选人是否具有超过1年的经验(从技术上讲,该模型创建了“ 分裂 ”并根据“经验年限”对候选人进行了隔离)。 现在,根据以下其他条件进一步评估候选人:
将重点放在具有1年以上经验的候选人(树的左侧)上,并找出在工作中获得2个以上奖项的人(也许是因为它们非常出色!)。 并用绿色“是”框将其标记为“成功”,并用红色“否”框将获得少于2个奖项的人标记为“未成功”。 大! 如今,这棵树只处理了很少的员工,并决定了谁成功了,谁没有成功。
现在,将重点放在树的右侧:经验少于或等于一年的候选人。 为了评估他们,该模型考虑了其他一些标准,其中之一是员工在其学位课程中完成的“实习数量”。 该模型又进行了一次“拆分”,将候选人分为两个部分,一个人的实习职位超过2个,另一个人的实习人数少于或等于2个。 被标记为“成功”的员工,他们有超过2个实习机会(但在树的右边,不到1年的经验)。
现在,该模型留给了经验少于或等于1年且在其学位课程中进行少于2次实习的员工。 因此,该模型又进行了一次“拆分”,并创建了两个细分:一个部门的员工的GPA> 3.7,另一个部门的员工的GPA≤3.7。 并且该模型将GPA> 3.7的员工标记为“成功”。
您可以将这一过程视为“模型的训练”,即决策树算法开发了某种层次结构,该层次结构可以准确地识别员工是否会成功完成工作。
现在,您想将此模型用于刚收到的新工作申请。 您将新应聘者的信息提供给现有模型,该模型将预测应聘者是否会成功工作。 例如,候选人具有以下特征:拥有1个实习经验且GPA = 3.5的8个月经验。 该模型将根据上述树预测“否”。 此模型可以减少您手动检查每个新应用程序的工作量,并且可以加快招聘过程(不过,我说的还不错)!
在本部分中,我将尝试回答的几个问题是:
1.树是如何从“ 多年经验 ”开始的?
2.如何确定要素拆分的值? 对于上面的示例,树是如何决定将“经验年”的划分设为“ 1”的?
3.决定分割是否足够的评估标准是什么?
我将首先回答第三个问题 。 为了确定每个拆分的质量,决策树模型检查叶节点的纯度 。 它被称为基尼指数 。 找到纯度的公式是(这很简单!):


在这里,范围i = 1到c表示我们拥有的类的数量。 在我们的示例中,我们只有2个类(“是”或“否”)。
p_i代表拆分中每个类别的个人(或记录)的比例。
降低基尼的价值,更好的分裂!
对于第一个和第二个问题,请进一步阅读:
在一开始,该算法将所有特征一一考虑就分割数据,并确定哪个分割给出纯节点。 然后将其拆分为“根节点 ”,这是第一个拆分。
假设我们的决策树算法首先将数据拆分为“ exps of exp。”。 = 3并获得如下图所示的分区(左部分)。 然后,找到分割的纯度并进行记录。 在这里,您可以想象蓝点代表“成功”的人(基于您作为招聘经理提供的“真实标签”),而橙色点代表“不成功”的人。
当算法以“年数”分割数据时。 = 1 ,它获得了直角矩形。 从图片中我们可以看到,右拆分比左拆分要好(或更优),因为它可以清楚地将拆分的一侧的蓝点和橙点分开,这就是为什么将其选择为拆分标准的原因通过算法。 决策树算法将对创建的所有拆分遵循此过程,并且仅选择较纯的拆分(这就是为什么我们将其称为“ 贪婪 ”!)。 很多时候,我们可能没有得到一个非常纯净的节点作为矩形,但这里我仅作为示例。


理想情况下,我们可以有足够大的树来正确识别训练数据的每次观察,但是该树不会有助于对新数据进行预测。 因此,策略是:创建一棵大树,直到在每个叶节点中至少有预定义数量的观察值为止(这是您在运行算法之前可以设置的参数)。 然后,向上修剪树并在误分类率和纯度之间取得平衡。
这样,如果准确性影响不大,则某些功能可能会从树中排除。 在我们的示例中,如果不降低性能,我们可以修剪树并删除基于“ GPA”拆分数据的分支。
这是该问题的非常高级的答案。 有关一些较低级别的详细信息,请访问“注释”部分中提到的链接。
1.只要发辫不是很大,就很容易解释
2.树本身就是模型!
3.可以与分类变量一起使用,而无需为其创建虚拟变量
建立整体模型(具有多棵树的模型)有助于获得更好的性能,但是树有时无法提供某些高级方法那样的准确性。
- 在此链接上可以很好地解释决策树(用于预测和分类)以及一些数学和统计数据。
我希望本文能帮助您理解决策树,而无需任何复杂的数学知识!