交叉验证和测试性能的差异



我正在使用带有交叉验证的Sklearn(5倍)。

交叉验证。我获取数据集并将其用于5倍交叉验证中。返回的分数(全5个)在.80至.85

的范围内

直接培训如果我将相同的数据集与火车测试拆分(0.2测试部分)进行直接拟合和预测,则可以达到.70的精度。(召回和ROC AUC也小于此。

所以,在交叉验证中,单个折叠组合等于我们直接在火车测试中所做的事情,正确吗?那为什么有很大的区别?我已经读到,原因是交叉验证与培训数据相当。但是,当考虑了交叉验证的单个设置(组合)时,它与直接拟合和预测是否相同?如果以某种方式知道交叉验证中特定组合的确切方式将数据分解,并使用该精确的分裂方法直接使用,我不应该获得相同的精度吗?

而无需查看代码和您的数据,我只能给出一个有根据的猜测。首先,我们需要验证数据集的原因是 TUNE HyperParameters 。使用交叉验证,我们尝试找到最佳的超参数,以使我们在验证集上具有最佳的预测准确性。因此,使用超参数的最终模型它选择了过拟合验证数据集。因此,验证数据集上的预测准确性不是对模型性能的真实度量。您需要保持一个永不触摸的测试数据集来评估您的模型性能。

如果您仅使用火车/测试拆分而没有验证集,则由于

,测试数据集的性能可能会更糟
  1. 您没有验证,您的超参数没有调整数据集
  2. 因为您的模型从未看到测试数据集,所以不是过于适应它。

相关内容

  • 没有找到相关文章

最新更新