给定一个没有噪声样本的数据集,ID3 算法的训练误差是否始终为 0?

人工智能 机器学习 决策树 id3-算法
2021-10-22 11:29:03

给定一个没有噪声示例的数据集(即,对于 2 个示例,属性值匹配但类值不匹配的情况永远不会发生),ID3 算法的训练误差是否总是等于 0?

1个回答

是的,如果您可以假设您的数据在给定的特征上是可分离的,那么 ID3 将为它找到一个决策树(注意:这不一定是最优树,甚至不一定是好树)。为了理解为什么让我们看一个证明。

假设我们在没有分离数据点的叶子中剩下一个特征和一些示例,那么:

  1. 此功能完美地将数据拆分为所需的类别。在这种情况下,ID3 将拆分此功能并完成。

  2. 此功能不会将数据拆分为所需的类别。在这种情况下,我们至少有 2 个具有相同特征值的示例,但它们不共享同一个类。这意味着这两个示例的所有特征都具有相同的特征值(与我们的假设相矛盾),或者我们创建了一个具有不可分离数据点的叶子(我们稍后证明这是不可能的)。

现在进行归纳步骤。

假设 ID3 已经使用了一些特性来在某种程度上区分我们的示例。因此,我们有一些未使用的特征和一些未在任何当前叶子上分离的示例,并且以下情况之一是正确的:

  1. 我们所有的叶子都只包含一个类的数据点。在这种情况下,ID3 完成并返回。

  2. 所有叶子都包含可由其余特征分离的数据点。然后 ID3 分裂局部最优并继续。

  3. 至少一个叶子包含不能被每个自己分支的剩余特征分开的数据点。那么存在两个例子 p 和 q 使得 p 和 q 共享所有相同的剩余特征值,但不共享相同的类。因此,以下情况之一为真:

    1. 我们已经使用了一个在 p 和 q 之间不同的特性。这是一个矛盾,因为我们说 ID3 已经在这个特性上分开了,因此 p 和 q 必须在不同的分支上。

    2. p 和 q 对于之前使用的所有特征具有相同的特征值。但是我们已经说过 p 和 q 共享所有相同的剩余特征值。因此,它们共享所有特征值,这与我们的假设相矛盾。

因此,在创建决策树的任何时候都不允许 ID3 创建具有不同类别的数据点但不能在剩余特征上分离的叶子。因此,ID3 必须创建一个完美分离数据且训练误差为 0 的解决方案。

然而需要注意的是,允许 ID3 以这种方式增长决策树可能会导致我们过度拟合训练集。为了解决这个问题,我们设置了允许 ID3 增长到的最大深度。