【深度学习】深度学习中的数据泄漏现象如何解决?

数据泄漏是深度学习中一个非常易出现的问题。
一、数据泄漏现象
数据泄漏指:模型在测试集上表现意外地好。
通常是由以下原因造成:

  1. 测试集与训练数据重叠
  2. 测试集数据出现在训练中
  3. 测试集与训练数据存在统计依赖

二、解决方案
要解决数据泄漏问题,需要做:

  1. 从头开始划分数据
  2. 使用专门的数据生成函数
  3. 不使用所有数据打分
  4. 使用 K 折验证
  5. 增加测试数据

具体来说:

  1. 从原始数据中完全随机划分
  2. 使用 Sklearn 的交叉验证函数
  3. 仅使用训练数据计算阈值
  4. K 折交叉验证可以重复利用所有数据
  5. 增加测试集规模,减少泄漏

三、识别数据泄漏
我们可以通过如下方式来识别数据泄漏 :

  1. 提高训练和测试准确率差异很大
  2. 测试集准确率远高于随机猜测
  3. 测试效果不随训练轮次变化
  4. 可视化结果检测异常情况

总的来说,要解决深度学习中的数据泄漏问题,需要:
1.完全随机划分数据集
2.使用专门的函数
3.不在测试集上统计阈值
4.使用 K 折交叉验证工序
5.增加测试集数据量

同时可以通过:
1.准确率差异
2.效果高于随机猜测
3.效果不变
4.可视化