我有一个基于对 100 个受试者收集的实验的模型。我们正在测试模型如下:
- 记录受试者的原始数据
- 对于每个主题,从原始数据中计算特征(因此,我们获得了 100 个数据集和 25 个特征)
- 保留一个主题的数据用于模型验证
- 将剩余的 99 个数据集合并为一个大数据集(因此,我们获得了一个最多 100 万行和 25 列的数据集)
- 获得的大型数据集用于训练模型并使用 10 倍交叉验证对其进行评估。
- 使用预留的数据集(见第3步)验证上面第5步得到的模型
不幸的是,模型的性能让我很困惑(这是过度拟合吗?数据泄漏?):
- 交叉验证的模型达到 99.9% 的准确率和 99.7% 的召回率)
- 但是,当使用验证测试集(参见步骤 3)测试相同的模型时,我得到的准确率非常低(召回率为 40.2%,准确率为 39.8%)
这种差异的原因可能是什么?关于如何改进的任何建议?