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

Machine learning 决策树学习算法中的重复训练数据,machine-learning,decision-tree,training-data,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 在上

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

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行中的数据集是重复的。它如何影响算法?我应该省略重复的数据吗?

如果这是正确收集的数据(某个随机过程/问题的随机样本),则永远不应该删除样本。这只是数据的特征,您已经对具有相同表示的两个对象进行了采样。有效地说,这将更加重视这一点,如果现实是这样的话,这是一件有效的事情。简而言之,永远不要删除任何内容,除非您100%确定这是由于错误造成的,或者您希望实现一些不标准的东西(如对不同分布的偏差估计值、计算效率的近似解等)对于统计机器学习,lejlot给出了一个非常好的答案。然而,决策树学习有点不同。它使用贪婪的搜索来寻找一个好的结构,这可能会导致奇怪的结果。从历史上看,这是因为它们来自一个机器学习更像是一门艺术(或工程学,但听起来不那么性感)的时代。

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

  • 这种重复不是由于数据收集过程中的错误造成的
  • 您的数据仍然是i.i.d.,以防您需要进行LOO或CV、培训、测试和验证。这个对我来说非常重要。如果看到许多例子,这破坏了统计评估的所有属性。特别是,训练/测试拆分可能应用于修剪等。如果是这样,并且您的示例不是独立的,您需要确保它们最终处于相同的折叠中
  • 对于数字数据,我会立即变得非常怀疑是否违反了其中任何一项

    考虑到这些假设——以及您使用的C4.5——我们可以分析对学习模型的影响。如果我们假设,您的类是可由决策树分离的,并且您没有设置任何约束,那么这没有任何区别。在这种情况下,您实际上可以安全地删除它们,但是,保留它们也不会对分类产生很大影响。然而,这些添加的示例在很大程度上会影响树的结构。在不计算
    /
    基尼
    指数的实际值的情况下,我假设第一次分割将在
    S_长度=<4.6
    上。这是这些额外示例最重要的结果:C4.5的贪婪将推动结构朝着能够很好地捕捉这些示例的方向发展。你可以把这种结构称为对某个类的过度拟合。如果与其他功能相比,这种差异非常微小,那么这可能是一个问题。SVM在这里的反应会更好(毫不奇怪:统计ML)

    总的来说,我会保留它们,然后将它们移除。在归纳树的结构时,我会忽略它们,只计算剩余示例的结构。然而,为了计算叶子的分类和修剪,我会使用它们


    上一段包含了最重要的建议:我将在这样一个域中对树应用修剪

    如果我试图根据一个人所喝的啤酒等属性来预测他是否是彩票中奖者,然后我将数不清的一个喝巴德的中奖者的复制品包括在内,你认为会发生什么?这是一个非常现实的例子。因此,可以肯定的是,重复的数据集会给节点增加不必要的权重,应该删除?我不能完全同意您的结论“100%确定这是由于错误”。我会用“100%确信你知道你在做什么”来代替它。保留和删除这些要点有很多很好的理由。其中一个原因是使用具有硬边界的支持向量机,还有一个原因是为了加快计算速度。其他原因是,这些要点不受欢迎地强调了其他训练方法(如决策树)中的错误分类成本。因此,这几点对不同的培训方法有不同的影响。@当然,基本假设是“如果您使用的是标准设置”。如果你想做一些非标准的事情,你甚至可以删除所有的训练样本并手工构建模型;)然后没有规则(答案编辑)(空间太小,无法进行真正好的讨论)您用您的答案总结了我的问题:您应用了某些假设。这些假设你称之为标准设置(似乎是:统计ML,经验风险最小化)。然而,一旦您离开此设置,情况就完全不同了。例如,在聚类、规则归纳等方面。当我写“知道你在做什么”时,我不得不微笑,因为在你知道你在做什么之前,你不应该在ML中得出任何结论。因此,问题非常相关,但细节太少,无法给出0/1的答案。不错,所以我看到了部分内容都包含在标题中。DT并没有让它变得更容易。