交叉验证和测试 f1_scores 存在显着差异的可能原因是什么?我正在执行 3 折分层交叉验证,测试 f1_score 几乎比交叉验证分数低 0.15。如何提出更有效的交叉验证策略,使两个分数更接近?
测试与交叉验证准确性的显着差异
数据挖掘
Python
交叉验证
2022-02-28 07:09:32
2个回答
当模型过拟合时,交叉验证和最终测试集中计算出的分类性能明显不同。
不良(即过度拟合)模型的一个良好指标是交叉验证中单次迭代的 F1 结果的高方差。
更好地估计模型性能的可能策略是:
- 使用更多折叠(例如,10 折交叉验证或留一法交叉验证)
- 考虑更简单的模型(例如,更少的变量,更一般的参数)
- 考虑其他机器学习算法
这件事可能有很多原因,但在大多数情况下,我观察到一个常见的原因。当您使用 train_test_split 或任何其他方法拆分数据时,请务必注意,考虑到训练集和测试集,拆分数据所在的列对于拆分非常重要。例如,如果我的数据中有一个“时间”字段,并且我已将数据拆分为该列上的训练集和测试集,使得测试集的该列中没有任何值与同一列中的任何值匹配火车集中的列。