决策树学习算法中的重复训练数据

时间:2016-02-13 04:26:20

标签: machine-learning decision-tree training-data

我有以下训练数据集,其中第一行显示属性名称。

S_Length, Se_Width, P_Length, P_Width, Predicate
5.1,3.5,1.4,0.2,Ili
4.9,3.0,1.4,0.2,Iri
4.7,3.2,1.3,0.2,Iyr
4.6,3.1,1.5,0.2,Ir
5.0,3.6,1.4,0.2,Po
5.4,3.9,1.7,0.4,II
4.6,3.1,1.5,0.2,Ir
5.0,3.4,1.5,0.2,Imt
4.6,3.1,1.5,0.2,Ir

在上述数据集中,在第4,7行和第9行中,数据集是重复的。它如何影响算法?我应该省略重复的数据吗?

2 个答案:

答案 0 :(得分:1)

如果这是正确收集的数据(一些随机过程/问题的随机样本),那么你永远不应该删除样本。这只是数据的特征,您已经采样了两个具有相同表示的对象。有效地,这将更加重视这一点,如果现实是这样的话,这是有效的事情。简而言之永远不会删除任何内容,除非您 100%确定这是由于错误或您想要达到非标准的东西(如偏见)估计不同的分布,计算效率的近似解等。)。

答案 1 :(得分:0)

对于统计机器学习,lejlot给出了非常好的答案。但是,决策树学习有点不同。它使用贪婪的搜索来建立一个良好的结构,这可能会导致奇怪的结果。从历史上看,这是因为它们来自机器学习更多的艺术(或工程学,但听起来不那么性感)。

在继续之前,我们需要两个确保两个属性(第一个已经由lejlot解释)

  1. 此重复不是由于数据收集过程中的错误而导致的
  2. 您的数据仍然是i.i.d.如果你想做LOO或CV,训练,测试,验证分裂。这对我来说非常重要。如果看到许多例子,这会破坏统计评估的所有属性。特别是,列车/测试拆分可能会用于修剪等。如果是这样,并且您的示例不是独立的,您需要确保它们最终处于相同的折叠
  3. 对于数字数据,我会立即变得非常怀疑其中任何一个都被违反了。

    鉴于这些假设 - 此外您使用C4.5 - 我们可以分析对学习模型的影响。如果我们假设您的类可以通过决策树分离,并且您没有提出任何约束,那么它并没有任何区别。在这种情况下,您实际上可以安全地删除它们,但是,保持它们对分类没有太大影响。但是,树的结构很大程度上受这些添加的例子的影响。在不计算entropy / gini索引的实际值的情况下,我假设第一次拆分将在S_Length =< 4.6上。这是这些额外例子中最重要的结果:C4.5的贪婪将推动结构走向能够很好地捕捉这些例子的东西。您可以将该结构称为过度拟合某个类。如果与其他功能相比,这种差异相当小,则可能会出现问题。 SVM会在这里做出更好的反应(并不奇怪:统计ML)。

    总的来说,我实际上会保留它们并删除它们。在诱导树的结构期间,我将忽略它们并且仅计算其余示例的结构。但是,为了计算叶子中的分类和修剪,我会使用它们。

    前一段包含最重要的建议:我会在这样的域中对树进行修剪。