我目前正在使用 20x300 的小型数据集。由于我的数据点很少,我想知道是否可以使用类似于留一法交叉验证但用于测试的方法。
这就是我的想法:
训练/测试拆分数据,测试集中只有一个数据点。
在训练数据上训练模型,可能使用网格搜索/交叉验证
使用步骤 2 中的最佳模型对一个数据点进行预测并将预测保存在数组中
重复前面的步骤,直到所有数据点都在测试集中
使用这些预测计算您选择的首选指标(准确度、f1 分数、auc 等)
这种方法的优点是:
- 您不必将数据拆分为训练/测试,因此您可以使用更多数据点进行训练。
缺点是:
这种方法存在潜在的(?)数据泄漏问题。
由于网格搜索,您正在从可能来自不同模型的一堆预测中计算准确度指标,所以我不确定它的准确度。
我已经尝试过训练/测试拆分的标准方法,但是由于我需要至少取出 5 分进行测试,所以我没有足够的训练分,并且 ROC AUC 变得非常糟糕。
我真的很感激一些关于这种方法是否真的可行以及为什么的反馈。