训练和测试集中的例子必须是独立的吗?

机器算法验证 火车
2022-04-15 00:03:06

我正在研究一个机器学习问题,其中每个用户收集了几个数据点。有些点是好的,有些点是坏的。

我想对我建立的机器学习模型进行良好的评估。

我应该从每个用户中只选择 1 分,然后从中进行训练或测试吗?或者我可以训练/测试来自同一用户的点吗?

我读到这个:https ://en.wikipedia.org/wiki/Test_set 。它说要保持测试集实例独立于训练集,这对于更好地评估模型是有意义的。

我的主要问题是来自同一用户的几个点的训练是否可以,即训练点是否需要独立/

谢谢。

1个回答

对来自同一用户/主题的多条记录/观察进行训练是可以的,但您希望您的测试数据独立于您的训练数据。

例如,您可能会想象两种构建测试集的方法(例如,用于交叉验证):

  1. 记录明智:随机选择记录并分配给测试集。
  2. 主题明智:随机选择主题,并将他们的所有记录分配给一个测试集。

如果受试者的记录不是独立的,这两种方法可能会有很大的不同,几乎可以肯定的是后者,随机选择受试者放入测试集中。

基于记录的测试集构建会出现什么问题?

举一个极端的例子,假设每个科目的所有记录完全相同,每个科目都有许多记录。然后通过记录验证,您将在测试集上进行训练!如果你的算法过度拟合数据,你会在测试集上获得惊人的性能,但当你真正看到新的、独立的数据时,性能却很糟糕。

对同一组用户进行培训和测试可能会产生可怕的误导性结果,这些结果无法预测新用户的样本性能。

另一个例子,这是最近的一篇论文,讨论了记录方式的交叉验证在临床环境中如何完全出错:http: //biorxiv.org/content/early/2016/06/19/059774.full.pdf+html