我有以下训练数据集,其中第一行显示属性名称。
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 :(得分:1)
如果这是正确收集的数据(一些随机过程/问题的随机样本),那么你永远不应该删除样本。这只是数据的特征,您已经采样了两个具有相同表示的对象。有效地,这将更加重视这一点,如果现实是这样的话,这是有效的事情。简而言之永远不会删除任何内容,除非您 100%确定这是由于错误或您想要达到非标准的东西(如偏见)估计不同的分布,计算效率的近似解等。)。
答案 1 :(得分:0)
对于统计机器学习,lejlot给出了非常好的答案。但是,决策树学习有点不同。它使用贪婪的搜索来建立一个良好的结构,这可能会导致奇怪的结果。从历史上看,这是因为它们来自机器学习更多的艺术(或工程学,但听起来不那么性感)。
在继续之前,我们需要两个确保两个属性(第一个已经由lejlot解释)
对于数字数据,我会立即变得非常怀疑其中任何一个都被违反了。
鉴于这些假设 - 此外您使用C4.5 - 我们可以分析对学习模型的影响。如果我们假设您的类可以通过决策树分离,并且您没有提出任何约束,那么它并没有任何区别。在这种情况下,您实际上可以安全地删除它们,但是,保持它们对分类没有太大影响。但是,树的结构很大程度上受这些添加的例子的影响。在不计算entropy
/ gini
索引的实际值的情况下,我假设第一次拆分将在S_Length =< 4.6
上。这是这些额外例子中最重要的结果:C4.5的贪婪将推动结构走向能够很好地捕捉这些例子的东西。您可以将该结构称为过度拟合某个类。如果与其他功能相比,这种差异相当小,则可能会出现问题。 SVM会在这里做出更好的反应(并不奇怪:统计ML)。
总的来说,我实际上会保留它们并删除它们。在诱导树的结构期间,我将忽略它们并且仅计算其余示例的结构。但是,为了计算叶子中的分类和修剪,我会使用它们。
前一段包含最重要的建议:我会在这样的域中对树进行修剪。