【发布时间】:2019-06-14 09:31:44
【问题描述】:
在进行任何探索性数据分析之前最好将您的数据分成训练集和测试集,还是仅根据训练数据进行所有探索?
我正在处理我的第一个完整机器学习项目(课程顶点项目的推荐系统),并且正在寻找有关操作顺序的说明。我的粗略大纲是导入和清理,进行探索性分析,训练我的模型,然后在测试集上进行评估。
我现在正在做探索性数据分析 - 一开始没什么特别的,只是从变量分布等开始。但我不确定:我应该在探索性分析之前还是之后将我的数据分成训练集和测试集?
我不想通过检查测试集来潜在地污染算法训练。但是,我也不想错过可能反映真实信号的视觉趋势,而我可怜的人眼在过滤后可能看不到,因此在设计我的算法时可能会错过调查一个重要且相关的方向。
我检查了其他线程,例如this,但我发现的那些似乎更多地询问诸如正则化或原始数据的实际操作之类的问题。我找到的答案有好有坏,但优先考虑拆分。但是,我不打算在拆分数据之前对数据进行任何实际操作(除了检查分布并可能进行一些因子转换)。
您在自己的工作中做什么?为什么?
感谢您帮助新程序员!
【问题讨论】:
-
暗示完整的数据足够小,可以轻松使用(即适合内存)我总是将完整的数据集用于 EDA。我只有在建模时才分裂成测试/训练
-
这个问题对于 SO 来说有点偏离主题(它偏向于“基于意见”并且与编码本身无关),但这仍然是一个非常好的问题。 Here's one perspective;您可以在 CrossValidated 或 RStudio Community 上找到其他人或其他容易接受的受众。
-
EDA 不需要拆分。 EDA 只是指导您未来的步骤。观察任何趋势可能有助于指导您的功能选择和/或工程。 EDA 还可以帮助您更好地清理数据。 ML 与您的数据一样好。
-
这是一个关于正确的机器学习数据科学管道的好问题。
标签: r machine-learning data-analysis