2016-02-13 164 views
1

我有以下训练数据集,其中第一行显示属性的名称。决策树学习算法中的重复训练数据

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

+0

如果我试图根据包括他们喝的啤酒在内的属性来预测某个人是否为彩票赢家,那么我将包含一个获得该彩票的Bud饮酒者的一百万份副本,您认为会发生什么? –

+0

这是一个非常现实的例子。所以可以肯定的是,重复的数据集会给节点增加不必要的权重,应该删除? –

回答

1

如果这是正确收集数据(一些随机过程/问题的随机样本),那么你不应该删除样本。这只是您的数据的特征,您已采样具有相同表示的两个对象。有效地,这会加重这一点,如果现实是这样的话,这是一个有效的做法。总之除非你是100%肯定这是由于错误或者你想实现的东西不标准(如偏差估计对不同的分布,计算效率近似解等)从来没有删除任何东西

+0

我不能完全同意你的结论“** 100%肯定**,这是**由于错误**”。我会用“** 100%肯定**,你知道你在做什么”取而代之。保留和删除这些要点有很多很好的理由。其中一个原因就是您使用了具有较高边际的SVM,一个用于加速计算。其他人则认为这些观点不受欢迎(?)强调其他培训方法(如决策树)中的错误分类成本。因此,这些点对不同的训练方法有不同的影响。 – CAFEBABE

+0

@CAFEBABE,当然,基本假设是“如果您使用的是标准设置”。如果你想做一些非标准的事情,你甚至可以删除所有的训练样本,并手工建立模型;)然后没有规则 – lejlot

+0

(太小的空间,真正的好讨论)你总结我的问题与你的答案:**你**应用某些假设。这些假设你称之为**标准设置**(看起来:统计ML,经验风险最小化)。但是,只要您离开这个设置,事情就会完全不同。例如,在聚类,规则归纳等方面。在写“知道你在做什么”时,我不得不微笑,因为除非你知道你在做什么,否则你不应该在ML中得出任何结论。因此,问题非常相关,但是,太少的细节给予0/1回答恕我直言。不坏。所以 – CAFEBABE

0

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

继续我们需要两个保证两个属性(第一个已经被lejlot解释)

  1. 这种重复不是由于在数据收集过程中出现错误
  2. 你的数据仍然是独立同分布前如果你想做LOO或CV,训练,测试,验证拆分。这对我来说非常重要。如果看到很多例子,这会破坏统计评估的所有属性。特别是,火车/测试分裂可能被应用于修剪等,如果是的话,你的例子并不是独立的,你需要确保他们最终在同

对于数值数据我会立刻变得很可疑的是这些被违反。

给出这些假设 - 除了您使用C4.5 - 我们可以分析对学习模型的影响。如果我们假设,你的类可以通过决策树来分离,并且你没有提出任何约束,它没有任何区别。在这种情况下,您可以实际上安全地移除它们,但是,保持它们对分类没有太大影响。但是,树的结构可以很大程度上受这些附加示例的影响。在不计算entropy/gini索引的实际值的情况下,我假设第一次拆分将在S_Length =< 4.6上。这是这些额外例子中最重要的结果:C4.5的贪婪将推动结构朝着捕获这些例子的方向发展。你可以称这种结构适合某个班级。这可能是一个问题,如果这种差异相对于其他功能而言相当微不足道。支持向量机在这里反应会更好(毫不奇怪:统计ML)。

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

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