【问题标题】:Is it good practice to add a column specifying test set and train set? [closed]添加指定测试集和训练集的列是一种好习惯吗? [关闭]
【发布时间】:2018-04-12 10:48:44
【问题描述】:

我不久前找到了一个教程,但无法再次找到该教程,该教程在训练集和测试集中都创建了一个额外的列,该列将训练集指定为 true 或 false。我有代码,但找不到找到它的位置。

titanic.train$IsTrainingSet <- TRUE
titanic.test$IsTrainingSet <- FALSE

这是好的做法还是坏的做法?我只是好奇,因为我喜欢在执行如下数据清理和操作后拆分数据是多么容易。

titanic.train <- titanic.full[titanic.full$IsTrainingSet == TRUE,]
titanic.test <- titanic.full[titanic.full$IsTrainingSet == FALSE,]

我知道可能会有“做你想做的事”的答案,但我只是不知道这是否出于任何原因向数据添加另一列是不好的做法。

【问题讨论】:

  • 您可能想要这样做的唯一原因是,如果您需要对数据集执行一些重大修改,并且希望在一轮中完成,而不是两轮(一个用于训练,一个用于测试)。通过这种方式,您可以这样做,然后再将其分开。但我不是很喜欢它,但它可能只是我......
  • 你的教程可能来自这里:kaggle.com/c/titanic/kernels
  • 谢谢@Umberto。我想在 Kaggle 比赛之外,这种方法可能无论如何都没有用,因为算法决定了测试/训练。谢谢!

标签: r training-data test-data


【解决方案1】:

将扩展我的评论。 OP所指的教程在这里

https://www.kaggle.com/hiteshp/head-start-for-data-scientist

教程的作者把这两组放在一起看所有的数据。现在警告:在做类似的事情之前,你应该检查这两个集合是否具有相同的特征(或者有时说它们来自相同的分布),否则你最终可能会得出非常错误的结论。最好比较这两组以检查测试集是否代表训练集。那会更有帮助。

有时开发/测试集来自不同的来源,因此请注意这样做,因为这可能很危险。

希望对你有帮助,翁贝托

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2013-03-30
    • 1970-01-01
    • 2010-09-27
    • 2015-02-18
    • 2016-03-20
    • 2011-03-01
    • 2021-05-07
    • 2017-04-28
    相关资源
    最近更新 更多