数据挖掘中的剪枝

2024年11月20日 | 阅读 6 分钟

剪枝是与决策树相关的数据压缩方法。它用于消除决策树的某些部分以减小树的大小。

在本文中,我们将了解**数据挖掘中的树剪枝**,但首先,让我们了解一下决策树。

决策树

决策树是一种用于分类和预测的算法。它以树的形式描述规则。它直观地定义了简单的规则,易于理解。它以图形方式表示**决策过程**,有助于轻松做出决策。

它包含三个节点:根节点、分支节点和叶节点。根节点也是第一个决策节点,在此处提出主要问题。分支节点是中间节点,有助于回答根节点处提出的主要问题。叶节点是终端节点,提供最终答案。

绘制决策树有两个因素。第一个因素是**信息增益**,它衡量特定问题的答案提供了多少信息。第二个因素是**熵**,它衡量信息中存在的不确定性。

在构建完树之后,可以通过剪枝方法来阻止过拟合。此方法用于删除分支以使树更具预测性。我们将在本文的后续部分中详细讨论**剪枝**。

示例

让我们考虑下面提供的数据集

Day天气温度打板球
第一天晴朗温和是的
第二天下雨凉爽不能
第三天多云温和是的
第四天晴朗凉爽是的
第五天晴朗炎热不能

从给定的数据集中,我们将构建决策树并检查是否可以在户外打板球。

上面提供的数据集的图形表示如下

Tree Pruning in Data Mining

在上面构建的决策树中,正如您所见,根节点是“天气”,因为它是在做出第一个决策时使用的初始节点。这是提出主要问题并询问是否要在户外打板球的节点。

在决策树中,决策节点是“天气”和“温度”。分支节点是“晴天”、“多云”、“雨天”、“炎热”、“温和”和“凉爽”。叶节点是“是”或“否”。

现在,让我们借助决策树来决定。我们必须选择根节点的分支,这应该是我们的决定。我们必须根据条件选择分支。

让我们来决定第一天;天气是晴朗的,所以我们将选择“晴天”分支节点。之后,我们将寻找进一步的决策节点。进一步的决策节点是“温度”,它分为三个分支:“炎热”、“温和”和“凉爽”。对于第一天,我们将选择“温和”分支节点,它有一个叶节点“是”。“温和”的选项非常适合在户外打板球,这意味着我们可以在第一天在户外打板球。

现在,让我们决定第二天;天气是下雨的,所以我们将选择“雨天”分支节点。这个分支节点有一个叶节点,上面写着“否”,这意味着我们不能在第二天在户外打板球。

现在,让我们决定第三天;天气是多云的,所以我们将选择“多云”分支节点。之后,我们将寻找进一步的决策节点。进一步的决策节点是“温度”,分为三个分支:“炎热”、“温和”和“凉爽”。对于第三天,我们将选择“温和”分支节点,它有一个叶节点“是”。所以,我们可以在第三天在户外打板球。

同样,我们可以决定第四天和第五天。因此,我们已经看到了使用决策树进行决策和预测答案是多么容易。

树剪枝

当构建决策树时,会使用树生长算法来构建树。训练数据中的噪声会在构建树的过程中在树的各个分支中产生异常。树剪枝技术解决了这个问题并用于消除它。

在数据挖掘中,**树剪枝**是一种用于在不降低准确性的情况下减小决策树模型大小的技术。它通过从完全生长的树中删除某些分支来改进决策树模型并减少过拟合。它会删除由噪声引起的训练数据中存在的异常。经过剪枝的树尺寸较小,易于理解。

想到的一件事是,最终树的最佳大小是多少。太大的树有过度拟合训练数据的风险,而太小的树可能会丢失重要的结构信息。

树剪枝有两种方法

预剪枝方法

预剪枝也称为**前向剪枝或提前停止**。该方法在决策树构建之前对其施加约束。在预剪枝中,在树变得复杂之前停止构建过程。它有助于处理过拟合问题。一些可以停止树构建的度量包括 Gini 指数、统计显着性、信息增益、熵等。

可以通过考虑阈值来剪枝树。如果阈值很高,树可能会过度简化。如果阈值很低,树可能只会稍微简化。

通过考虑所有度量来剪枝树节点,之后节点成为叶节点。叶节点可以确定其元组子集中最常见的类别。当节点处的元组划分导致分裂低于指定阈值时,将停止进一步划分。

示例

让我们考虑下面提供的数据集

客户 ID年龄薪金购买
1年轻的不能
2中间是的
3旧的不能
4年轻的是的
5中间是的

我们将使用最大深度为 3 的预剪枝条件来构建决策树。

计算信息增益和熵后,将构建最大深度为 3 的决策树,您可以在下方看到

Tree Pruning in Data Mining

根节点位于“深度 0”,代表整个数据集。在上图中,根节点是“年龄”。根节点分为三个中间节点:“年轻”、“中年”和“年长”。然后,“年轻”节点根据薪资分为两个中间节点:“高”和“低”。由于我们的最大限制在深度 3,因此我们不会在“中年”和“年长”节点处进行分支分裂。

这就是决策树的创建方式。易于解释树并预测结果。在预剪枝中,即使树可以进一步划分为更多分支,决策树也会在达到最大深度限制时停止生长。

后剪枝方法

后剪枝是在树生长到其完整深度之后进行的。它也称为**后向剪枝**。通过消除分支并将其替换为叶节点来剪枝树,以防止决策树模型过拟合。然后将要替换的子树中最常见的类别指定为叶节点的标签。

示例

考虑构建一棵根据学习时间来决定学生是否通过或失败的决策树。

以下是学生的数据集

学生 ID学习时间睡眠时间结果
128失败 (Fail)
266Pass
375Pass

您可以在下面看到完全生长的决策树

Tree Pruning in Data Mining

现在,考虑以下是包含学生额外数据的验证数据集

学生 ID学习时间睡眠时间结果
476Pass
559失败 (Fail)
686Pass

我们可以修剪树以改进它。我们将删除影响准确性的分支。我们将修剪“睡眠时间 > 7:失败”分支,因为它对树的价值不大。

在修剪完完全生长的树之后,最终的决策树将如下所示

Tree Pruning in Data Mining

修剪后的树更准确,也更容易理解。

结论

  • 在本文中,您已经通过示例理解了**数据挖掘中的树剪枝**的概念。
  • 剪枝是一种流行的技术,通过从决策树中删除分支来减小其大小并使其易于理解,从而有助于改进过拟合。
  • 决策树是数据集的图形表示,用于在解释决策树后轻松做出决策。
  • 您了解到树剪枝有两种方法:**预剪枝**和**后剪枝**。
  • 预剪枝方法也称为**提前停止或前向剪枝**。在此方法中,在构建决策树之前进行剪枝。
  • 后剪枝方法也称为**后向剪枝**。此剪枝方法在将决策树构建为完全生长的树之后进行。