从数据层面减少过拟合现象

文章目录

  • 从数据层面减少过拟合现象
    • 一、过拟合及数据上常用的方法
      • [1. 收集更多真实数据](#1. 收集更多真实数据)
      • [2. 数据增强(Data Augmentation)](#2. 数据增强(Data Augmentation))
      • [3. 预训练](#3. 预训练)
      • [4. 数据清洗与去噪](#4. 数据清洗与去噪)
      • [5. 处理类别不平衡](#5. 处理类别不平衡)
      • [6. 特征工程与降维](#6. 特征工程与降维)
      • [7. 合理的数据划分与验证](#7. 合理的数据划分与验证)
      • [8. 高级数据增强技术](#8. 高级数据增强技术)
      • [9. 数据分布修正](#9. 数据分布修正)
    • 二、小结

从数据层面减少过拟合现象

一、过拟合及数据上常用的方法

过拟合是机器学习中的常见问题,可以通过以下方法提升数据的多样性和质量,帮助模型学习更普适的规律:

1. 收集更多真实数据

减少过拟合现象的最好方式之一是采集更多(高质量的)数据。我们可以通过以下方法获得更多数据:

  • 直接扩增:人工标注新数据(最直接有效的方法)。

  • 间接生成:利用生成模型(如GAN、VAE、Diffusion Models)合成高质量数据。

    • 注意事项:需验证生成数据的分布是否与真实数据一致,避免引入虚假模式。

    如下图所示,随着训练集的增大,模型在验证集上的准确性也会提高。

2. 数据增强(Data Augmentation)

  • 核心思想:通过对现有数据进行合理变换,生成新样本,增加数据多样性,它能在不采集额外数据的情况下扩数据集。
  • 具体方法
    • 图像领域 :旋转、翻转(水平/垂直)、裁剪、缩放、添加噪声、调整亮度/对比度、模糊等。
      • 注意 :避免破坏标签有效性(例如垂直翻转数字"6"可能变为"9")。
    • 文本领域:同义词替换、随机插入/删除词语、回译(翻译成其他语言再译回)、随机交换句子顺序等。
    • 音频领域:变速、加噪、时移、改变音高。
    • 结构化数据:添加高斯噪声、生成对抗样本(需保证特征分布合理)。
  • 优势:低成本扩展数据集,迫使模型关注不变性特征(如物体形状而非位置)。

3. 预训练

  • 核心思想:通过自监督学习、迁移学习以及小样本学习等方法进行预训练,减少过拟合现象的发生。
  • 具体方法
    • 自监督学习:通过大型无标签数据集对神经网络进行预训练。
    • 迁移学习:针对大型有变迁数据集进行迁移学习。
    • 小样本学习:数据集非常小,例如每个标签只有几个样本,这时候监督学习并不适用。如分类器需要在无法获取更多有标签数据的情况下工作,我们可以考虑小样本学习。

4. 数据清洗与去噪

  • 剔除异常值:通过统计方法(如Z-score、IQR)或可视化识别异常样本。
  • 修正错误标签
    • 人工审核:对高置信度但预测错误的样本重新标注。
    • 半自动方法:使用交叉验证筛选标签不一致的样本。
  • 标准化/归一化:消除特征量纲差异,防止模型对某些特征过度敏感。

5. 处理类别不平衡

  • 过采样(Oversampling)
    • 简单复制少数类样本(可能导致过拟合)。
    • SMOTE(Synthetic Minority Oversampling Technique):通过插值生成新样本。
  • 欠采样(Undersampling)
    • 随机删除多数类样本(可能丢失重要信息)。
    • Tomek Links:移除多数类中与少数类边界重叠的样本。
  • 混合策略:如SMOTEENN(SMOTE + 清理欠采样)。
  • 损失函数调整:使用加权交叉熵,赋予少数类更高权重(非数据层面,但常配合使用)。

6. 特征工程与降维

  • 特征选择
    • 过滤法(卡方检验、互信息)。
    • 嵌入法(LASSO正则化、基于树模型的特征重要性)。
  • 特征降维
    • 线性方法:PCA(主成分分析)。
    • 非线性方法:t-SNE、UMAP(更适合可视化)。
  • 目的:减少冗余特征,降低模型复杂度对噪声的敏感性。

7. 合理的数据划分与验证

  • 严格分离训练集/验证集/测试集
    • 避免数据泄漏(例如同一患者的不同切片分到不同集合)。
    • 确保分布一致(如时间序列数据需按时间划分)。
  • 交叉验证
    • 使用K折交叉验证评估模型稳定性。
    • 对小型数据集尤其重要(如5折或留一法)。

8. 高级数据增强技术

  • Mixup :线性混合两个样本的特征和标签(如 x n e w = λ x 1 + ( 1 − λ ) x 2 x_{new} = λx_1 + (1-λ)x_2 xnew=λx1+(1−λ)x2, y n e w = λ y 1 + ( 1 − λ ) y 2 y_{new} = λy_1 + (1-λ)y_2 ynew=λy1+(1−λ)y2)。
  • Cutout/CutMix
    • Cutout:随机遮挡图像区域。
    • CutMix:用另一图像的局部区域替换当前图像。
  • AutoAugment:基于强化学习自动搜索最优增强策略(如Google的图像增强策略库)。

9. 数据分布修正

  • 对抗性数据增强:针对模型弱点生成对抗样本并加入训练集(提升鲁棒性)。
  • 领域自适应:若数据来自不同分布(如不同设备采集),对齐特征分布(如使用对抗训练或CORAL损失)。

二、小结

通过以上方法,可以从数据层面降低模型对训练集噪声和局部特征的依赖,提升泛化能力。需结合具体任务选择组合策略(如医疗图像需谨慎使用几何变换,NLP任务需保持语义一致性)。

当神经网络分类器出现过拟合现象时,意味着模型在训练数据上表现很好,但在未见过的测试数据上表现较差。模型学习到了训练数据中的噪声和特有模式,而不是普适的规律。从数据层面入手,以下是一些常用的减少过拟合的方法:

相关推荐
输出输入1 小时前
量化用到的机器学习书籍推荐
机器学习
深度学习入门1 小时前
学习深度学习是否要先学习机器学习?
人工智能·深度学习·神经网络·学习·机器学习·ai·深度学习入门
willhu20082 小时前
Tensorflow2保存和加载模型
深度学习·机器学习·tensorflow
Blossom.1184 小时前
从虚拟现实到混合现实:沉浸式体验的未来之路
人工智能·目标检测·机器学习·计算机视觉·语音识别·vr·mr
2303_Alpha4 小时前
深度学习入门:深度学习(完结)
人工智能·笔记·python·深度学习·神经网络·机器学习
深度学习入门5 小时前
机器学习,深度学习,神经网络,深度神经网络之间有何区别?
人工智能·python·深度学习·神经网络·机器学习·机器学习入门·深度学习算法
IT古董6 小时前
【漫话机器学习系列】259.神经网络参数的初始化(Initialization Of Neural Network Parameters)
人工智能·神经网络·机器学习
田梓燊12 小时前
数学复习笔记 12
笔记·线性代数·机器学习
广州智造19 小时前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化