机器学习中的决策树:功能、分类、优缺点
已发表: 2020-05-14每个人都必须在自己的生活中做出决定。 这些决定取决于情况。 做出正确的决定有助于以最佳方式面对情况,以最直接的方式解决问题。 在童年时期,你的大部分决定都围绕着你吃什么以及与你的学校有关的事情。
随着您的成长,您的决定开始对您的生活以及其他人的生活产生更严重的影响。 在您生命中的某个时刻,您将做出有关您的职业或业务的决定。 这个类比是向你介绍机器学习中决策树的概念。
目录
什么是决策树?
首先,让我们告诉您决策树是支持决策的预测模型或工具。 众所周知,通过使用遵循树状结构的设计、设计模型或表示来提供准确的推理。 该模型或机器学习模型的主要目标是考虑目标的某些属性,然后根据这些属性做出决策。
决策树中的大多数决策都遵循条件语句——if 和 else。 为了使决策树模型比其他模型更好,它将具有更深的结构和更复杂的规则来管理它。 它是机器学习中最受欢迎的监督学习模型之一,并用于许多领域。 它可能看起来像一个流程图,设计时牢记算法技术,以确保根据条件完成拆分。
这个流程图的结构非常简单。 它有一个根节点,作为模型构建的基础。 然后,一些内部节点和分支分别显示特征或测试和测试结果。 叶节点表示一个组,其值与对相关属性做出决策时所获得的值相似。
决策树主要用于分类和回归问题。 它们用于创建自动预测模型,这些模型不仅服务于机器学习算法应用程序,还服务于统计、数据科学和数据挖掘等领域的多个应用程序。 这些基于树的结构提供了一些最准确的预测模型,这些模型比大多数其他预测模型更易于解释且更稳定。

与仅适用于特定数量问题的线性模型不同,基于决策树的模型也可用于映射非线性关系。 难怪决策树如此受欢迎。 一个非常重要的原因是最终的决策树模型很容易理解。 它可以非常清楚地描述预测背后的一切。 它们也是更高级的协作或集成方法的基础,包括梯度提升、装袋和随机森林等。
如何定义决策树?
现在我们已经对该概念有了基本的了解,让我们为您定义它。 决策树是一种有监督的机器学习算法,可用于解决基于分类和基于回归的问题。 让我们看看它是如何用于分类的。
让我们假设有一个我们目前正在处理的数据集。 我们创建了一个可以划分为不同区域的 2D 平面图,以便将每个区域中的点指定为同一类。 分割或拆分由唯一字符表示。 这是我们正在研究的二叉树。
现在,这个决策树有不同的东西,它们没有先验表示,而是使用提供给我们的训练数据创建的。 这些东西包括这棵树将拥有的节点数量、它的边缘定位和它的结构。 我们不会在这里从头开始创建树。 考虑到我们的树已经在那里,我们只会继续前进。
现在,我们如何对新的输入点进行分类? 我们只需要沿着树向下移动即可。 在遍历时,我们将继续提出关于到达每个节点的数据点的问题。 例如,当我们在根节点问这个问题时,答案要么让我们向右或向左分支。 一般规则是,如果提出的问题满足条件中提出的条件,我们必须向左分支。 如果不是真的,我们必须向右分支。 如果我们的条件将我们带到左节点,我们将知道必须为输入点分配什么类。
当谈到如何演示决策树时,有几件事是永远不应忘记的。 没有规则或必要性说我们必须在遍历决策树的两个坐标之间交替。 我们可以选择只使用一个特征或维度。 我们需要记住,决策树可以用于任何维度的数据集。 我们在示例中采用了二维数据,但这并不意味着决策树仅适用于二维数据集。
结帐:二叉树的类型
你参加过二十个问题竞赛吗? 它与决策树的工作方式非常相似。 让我们看看如何? 二十问游戏的最终目标是找出回答问题的人在回答问题时所想的对象。 这些问题只能以是或否来回答。
随着您在游戏中前进,您将从之前的答案中知道要在游戏结束之前提出哪些具体问题才能获得正确答案。 决策树是您的一系列问题,通过引导您提出更多相关问题来帮助您获得最终答案。
你还记得你是如何通过语音信箱被引导到你想在公司里与之交谈的人的吗? 您首先与电脑助手交谈,然后按下手机上的一系列按钮并输入有关您帐户的一些详细信息,然后再联系您想要与之交谈的人。 这对您来说可能是一个麻烦的经历,但这就是大多数公司使用决策树来帮助他们的客户找到合适的部门或与合适的人交谈的方式。 另请阅读您必须了解的 6 种监督学习。
决策树如何工作?
思考如何创建完美的决策树? 正如我们之前提到的,决策树是一类用于解决属于分类和回归类型的机器学习问题的算法。 它既可用于分类变量,也可用于连续变量。
该算法有一种简单的前进方式——它将数据集或样本数据划分为不同的数据集,每个数据集分组在一起共享相同的属性。 决策树为不同的目的使用了许多算法——识别分割、最重要的变量以及可以产生更多细分的最佳结果值。
通常,决策树的工作流程涉及将数据划分为训练和测试数据集、算法的应用以及模型性能的评估。 让我们通过一个非常简单的例子来了解它是如何工作的。 假设我们要检查一个人是否适合某项工作。 这将是树的根。
现在我们转向树的特征或属性,它们将构成内部节点。 基于这些属性,将做出决策——树的分支的形成。 让我们在这里做另一个假设。 被认为适合这份工作的人的参数是他们 5 年或更长时间的经验。 第一次除法将在我们刚刚设置的这个参数上进行。
我们需要更多的参数集来进一步拆分。 这些参数可以是关于他们是否属于某个年龄组,是否具有一定程度,等等。 结果由树的叶子来描述,而不是根和树枝。 叶子从不分裂并描绘决策。 这棵树将帮助您确定候选人是否适合这份工作。
如前所述,决策树有自己独特的表示,可以帮助我们解决问题。 它有根、内部节点、分支和叶子,每个都服务于特定目的或执行特定工作。 这些步骤将帮助您进行树表示:
- 树的根部具有最佳属性的优化版本
- 使用适当的属性将样本数据拆分为子集。 确保新的数据子集或数据组不会为同一属性携带不同的值
- 重复上述两个步骤,直到你的决策树中的每个分支都有叶子
分类或回归树 (CART)
让我们举个例子。 想象一下,我们的任务是根据一些预定义的属性对求职者进行分类,以确保在流程结束时只选择值得的求职者。 选择候选人的决定将取决于实时或可能的事件。 我们只需要一个决策树来找到正确的分类标准。 结果将取决于分类的完成方式。

众所周知,分类包含两个步骤。 第一步涉及在样本数据集上构建随机模型。 第二步涉及预测——在第一步中训练的模型被实施以对给定数据的响应进行预测。
现在,在某些情况下,目标变量是实数,或者根据连续数据做出决策。 您可能会被要求根据劳动力成本对物品的价格做出预测。 或者,您可能会被要求根据候选人以前的薪水、技能、经验和其他相关信息来决定他们的薪水。
在这些情况下,目标值的值要么是某个实际值,要么是与连续数据集相关的值。 我们将使用决策树的回归版本来解决这些问题。 这棵树将考虑对对象特征所做的观察,并训练模型进行预测并提供绝对有意义的连续输出。
现在让我们谈谈分类和回归决策树之间的一些异同。 在目标变量本质上是分类的情况下,决策树被用作分类模型。 训练数据集在终端节点的顶点处获得的值等于当我们对该特定部分采用观察模式时收到的值。 如果有任何新的观察被添加到树的那个部分,我们将用众数替换它,然后进行预测。
另一方面,当目标变量是连续数据集的一部分时,决策树被用作回归模型。 在我们讨论分类树的同一点收到的值是该部分中关于回归树的观察值的平均值。
也有一些相似之处。 两种决策树模型都使用递归二元方法,并将自变量划分为彼此不重叠且确定的区域。 在这两棵树中,划分都从树的顶部开始,并且观测值位于一个区域中。 这些观察将变量分成两个分支。 这种分裂是一个持续的过程,它让位于一棵完全成熟的树。
阅读:机器学习项目理念
如何学习 CART 模型?
创建 CART 模型需要做一些重要的事情。 这些包括以正确构建树的方式选择输入变量和分割点。 降低成本函数的贪心算法用于选择输入变量以及划分点。
在预先定义的停止标准的帮助下终止树的收缩。 停止标准可以提及任何内容,例如将多少训练实例分配给树的叶节点。
1.贪心算法:必须正确分割输入空间才能构建二叉树。 递归二进制拆分是用于此目的的贪心算法。 这是一种数值方法,涉及排列不同的值。 然后使用成本函数来尝试和测试几个划分点。 选择成本最小的分割点。 此方法用于评估所有除法点以及输入变量。
2. 树修剪:停止标准提高了决策树的性能。 为了使它更好,您可以在学习后尝试修剪树。 决策树的划分数量说明了它的复杂程度。 每个人都喜欢比其他人更简单的树。 它们不会过度拟合数据,而且很容易破译。
修剪树的最佳方法是查看每个叶节点并找出删除它会对树产生怎样的影响。 当此操作保证成本函数下降时,将删除叶节点。 当您认为无法进一步提高性能时,您可以停止此删除过程。 您可以使用的修剪方法包括
3. 停止条件:我们前面提到的贪婪分裂方法,必须有停止命令或条件才能知道何时停止。 一个常见的标准是获取每个叶节点已分配的实例数。 如果达到该数字,则不会发生划分,并且该节点将被视为最后一个。
例如,假设预定义的停止标准被提及为五个实例。 根据训练数据,这个数字也说明了树的准确性。 如果它过于精确或精确,则会导致过度拟合,这意味着性能不佳。
如何避免在决策树中过拟合?
大多数决策树都存在过拟合。 我们可以构建一个能够以理想方式对数据进行分类的决策树,或者我们可能会遇到没有任何划分属性的情况。 这对测试数据集不太适用; 但是,它将适合训练数据集。 您可以遵循我们将要提到的两种方法中的任何一种来避免这种情况。

如果树太大,您可以修剪它,或者在它达到过度拟合状态之前停止它的生长。 在大多数情况下,定义了一个限制来控制树的生长,其中提到了深度、层数和它可以拥有的其他东西。 需要在其上训练树的数据集将分为测试数据集和训练数据集。 这两个数据集都将在训练数据集的基础上具有最大深度,并将针对测试数据集进行测试。 您还可以将交叉验证与此方法一起使用。
当您选择修剪树时,您可以对照原始版本测试修剪后的树版本。 如果在针对测试数据集进行测试时,修剪后的树的性能优于其版本,那么只要这种情况持续存在,树就无法使用叶子。
了解更多: R 中的决策树
决策树方法的优点
- 它可用于连续数据和分类数据。
- 它可以提供多个输出
- 它可以解释精确的结果,你可以量化和信任树木的可靠性
- 使用这种方法,您可以探索数据,找到重要变量,并找到不同变量之间的关系,从而在更短的时间内加强目标变量并构建新功能。
- 易于理解和向他人解释
- 它有助于清理数据。 与其他方法相比,它不会花费太多时间,因为在某个点之后没有缺失值和异常值对其产生影响
- 决策树的效率和性能不受特征之间非线性关系的影响
- 准备数据不需要太多时间,因为它不需要缺失值替换、数据规范化等。
- 这是一种非参数方法。 它与分类器的设计和空间布置无关
决策树的缺点
- 一些用户可以构建过于复杂的决策树,即使他们自己喜欢。 这些树不像更简单的树那样概括数据。
- 有偏差的树通常是由于某些类的支配而产生的。 这就是为什么在使用之前平衡样本数据非常重要的原因
- 有时这些树不太稳定。 数据变化可能导致创建不符合要求的树。 这种异常被称为方差。 它可以通过使用boosting和bagging来处理。
- 你不能指望用贪心算法得到最好的决策树。 为了解决这个问题,你可以训练多棵树。
结论
该博客讨论了学习者需要了解的有关决策树的所有重要信息。 看完这篇博文,你会对这个概念有更好的理解,在现实生活中你也能更好地实现它。
如果您有兴趣了解有关机器学习和人工智能的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为在职专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业, IIIT-B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
决策树算法有什么用?
作为监督学习算法家族的一部分,决策树是使用最广泛的分类算法之一。 它很容易理解和解释,这也是它受欢迎的原因。 可以使用决策树来开发训练模型,该模型可以根据从历史训练数据得出的简单决策指令来预测目标变量的值。 决策树算法最好的一点是它可以有效地解决分类和回归问题,这是其他监督学习算法无法应用的。 根据目标变量的类型,可以使用不同种类的决策树。
作为监督学习算法家族的一部分,决策树是使用最广泛的分类算法之一。 它很容易理解和解释,这也是它受欢迎的原因。 可以使用决策树来开发训练模型,该模型可以根据从历史训练数据得出的简单决策指令来预测目标变量的值。 决策树算法最好的一点是它可以有效地解决分类和回归问题,这是其他监督学习算法无法应用的。 根据目标变量的类型,可以使用不同种类的决策树。
在 AI 中,决策树算法具有广泛的应用。 决策树的一些最有趣的应用包括根据历史数据评估公司的潜在增长机会。 为此,历史销售数据可以帮助决策树指明进一步业务扩展和增长的可能途径。 决策树还可用于使用人口统计信息来寻找潜在客户。 此外,金融机构还可以应用决策树来创建预测模型,以评估客户和拖欠贷款者的信用。
人工智能中还使用了哪些其他算法?
人工智能中使用的算法可以大致分为三个部分——回归算法、分类算法和聚类算法。 分类算法用于以特定方式对数据集进行分类。 聚类算法应用于整个数据集,以发现特定数据点之间的差异和相似之处。 它可以用来在一大群客户中指出同龄人。 回归算法有助于根据输入数据预测未来结果。 例如,回归算法可用于设计预测天气的模型。