我正在使用 sklearn 的“cross_validate”和“KFold”函数运行 4 折交叉验证超参数调整。假设我的训练数据集已经被打乱,那么我是否应该在每次超参数调整迭代之前重新打乱数据,然后再分成批次/折叠(即,KFold 函数中的 shuffle 参数)?我注意到超参数调整过程的结果会有所不同,具体取决于我是否在将数据拆分为折叠之前对其进行了洗牌。
我假设如果结果取决于改组,那么该模型并不稳健。这个对吗?但是,这对模型也可能不“公平”,因为结果不可重现,因为每次我运行交叉验证时每个折叠的数据都是不同的(即,每个超参数组合都是在完全不同的折叠上评估的。例如,第 1 次调整迭代的第 1 折中的训练/验证数据集与第 2 次调整迭代的第 1 折数据集不同。)