我通过在机器学习和深度学习领域制作项目来训练自己。为此,我注册了 Kaggle 竞赛,例如 Titanic Dataset .
当我们加载数据时,有两个数据集:训练数据集和测试数据集。目前,我仅对训练集进行分析,每次创建新特征或执行一些更改时,我都会通过进行相同的操作来循环两个数据集。
现在,我要估算缺失值,并执行一些预处理操作,因此,我将对数据使用一些聚合,对分类特征进行编码等。但我想知道我是否应该同时使用训练和用于计算平均值或标记特征或仅训练集的测试集。
因为据我了解,测试集应该衡量模型在从未见过的数据上的表现,所以我认为到目前为止我应该只使用训练集来做出决策。
但有时它可能是“错误的”,例如如何处理测试集可能具有训练集没有的新类别这一事实?
问题
在深度学习或机器学习项目中填充缺失值并执行预处理操作时,同时使用训练集和测试集还是仅使用训练集更好?
即使在 Kaggle 比赛中会更好,那么制作项目呢?也许我们应该考虑新数据有可能具有未见过的类别的情况?
最佳答案
1) 在训练模型时,您永远不会接触测试数据。测试集仅用于检查您的预测的准确性。
2)一般来说,我们希望训练数据具有所有可能的结果(因此需要更大的数据源,而 Kaggle 确实提供了相当大的数据集,因此您不必担心),就生产而言所关心的以及在这种情况下看不见的情况,您倾向于改进您的模型,以便它可以处理这些新的情况。这可能需要重新训练它。
关于python - 在机器学习和深度学习项目中进行分析之前,我是否应该重新组合训练集和测试集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57215990/