数据泄漏是深度学习中一个非常易出现的问题。
一、数据泄漏现象
数据泄漏指:模型在测试集上表现意外地好。
通常是由以下原因造成:
- 测试集与训练数据重叠
- 测试集数据出现在训练中
- 测试集与训练数据存在统计依赖
二、解决方案
要解决数据泄漏问题,需要做:
- 从头开始划分数据
- 使用专门的数据生成函数
- 不使用所有数据打分
- 使用 K 折验证
- 增加测试数据
具体来说:
- 从原始数据中完全随机划分
- 使用 Sklearn 的交叉验证函数
- 仅使用训练数据计算阈值
- K 折交叉验证可以重复利用所有数据
- 增加测试集规模,减少泄漏
三、识别数据泄漏
我们可以通过如下方式来识别数据泄漏 :
- 提高训练和测试准确率差异很大
- 测试集准确率远高于随机猜测
- 测试效果不随训练轮次变化
- 可视化结果检测异常情况
总的来说,要解决深度学习中的数据泄漏问题,需要:
1.完全随机划分数据集
2.使用专门的函数
3.不在测试集上统计阈值
4.使用 K 折交叉验证工序
5.增加测试集数据量
同时可以通过:
1.准确率差异
2.效果高于随机猜测
3.效果不变
4.可视化