Data Augmentation的几种常用方法总结

本文总结了多种常用的数据增强方法,包括颜色抖动(ColorJittering)、PCA抖动(PCAJittering)、随机缩放(RandomScale)、随机裁剪(RandomCrop)、水平/垂直翻转(Horizontal/VerticalFlip)等,旨在提升图像数据集的多样性和模型泛化能力。
部署运行你感兴趣的模型镜像

Data Augmentation的几种常用方法总结:
Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化
PCA Jittering:首先按照RGB三个颜色通道计算均值和标准差,再在整个训练集上计算协方差矩阵,进行特征分解,得到特征向量和特征值,用来做PCA Jittering;
Random Scale:尺度变换;
Random Crop:采用随机图像差值方式,对图像进行裁剪、缩放;包括Scale Jittering方法(VGG及ResNet模型使用)或者尺度和长宽比增强变换;
Horizontal/Vertical Flip:水平/垂直翻转;
Shift:平移变换;
Rotation/Reflection:旋转/仿射变换;
Noise:高斯噪声、模糊处理;
Label shuffle:类别不平衡数据的增广,参见海康威视ILSVRC2016的report;
Scale jittering(简单来说,就是crop size是固定的,而image size是随机可变的。举例来说,比如把crop size固定在224×224,而image的短边可以按比例缩放到[256, 480]区间的某个随机数值,然后随机偏移裁剪个224×224的图像区域。)
大部分参考这篇文章链接:https://www.cnblogs.com/zhonghuasong/p/7256498.html

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 表格数据增强的技术和方法 表格数据增强(Tabular Data Augmentation)是机器学习领域中用于提高模型性能的一种技术。其核心思想是通过生成额外的训练样本或调整现有样本,使模型能够更好地泛化并减少过拟合。以下是一些常用的技术和方法: #### 1. 数据插值与外推 数据插值是一种通过线性或非线性方式在现有样本之间生成新样本的方法[^2]。例如,可以通过均值、加权平均或更复杂的插值算法生成新的特征组合。此外,外推法可以将数据点扩展到超出原始范围的区域,但需谨慎使用以避免引入噪声。 #### 2. 噪声注入 向表格数据中添加可控的随机噪声是一种简单有效的增强方法[^3]。例如,在数值型特征中加入高斯噪声,或对分类变量进行轻微扰动。这种方法可以模拟真实世界中的不确定性,并帮助模型更稳健地处理异常值。 ```python import numpy as np def add_gaussian_noise(data, noise_level=0.1): noise = np.random.normal(0, noise_level, size=data.shape) return data + noise ``` #### 3. 合成少数类过采样技术(SMOTE) SMOTE(Synthetic Minority Over-sampling Technique)是一种专门用于解决类别不平衡问题的技术[^4]。它通过在少数类样本的特征空间中生成新的合成样本,增加模型对少数类的识别能力。 ```python from imblearn.over_sampling import SMOTE smote = SMOTE() X_resampled, y_resampled = smote.fit_resample(X, y) ``` #### 4. 特征变换 特征变换包括对原始数据进行数学操作以生成新的特征。例如,对数值型特征进行对数变换、平方根变换或多项式扩展[^5]。这些变换可以揭示隐藏的模式并改善模型的拟合效果。 ```python from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X_poly = poly.fit_transform(X) ``` #### 5. 混合样本(Mixup) Mixup 是一种通过线性组合两个样本及其标签来生成新样本的技术[^6]。它不仅适用于图像数据,也可以扩展到表格数据。通过这种方式,模型可以学习到更平滑的决策边界。 ```python def mixup_data(X, y, alpha=0.2): lam = np.random.beta(alpha, alpha) indices = np.random.permutation(len(X)) X_mixed = lam * X + (1 - lam) * X[indices] y_mixed = lam * y + (1 - lam) * y[indices] return X_mixed, y_mixed ``` #### 6. 时间序列增强(若适用) 对于包含时间序列信息的表格数据,可以通过滑动窗口、重采样或周期性扩展等方法生成更多样本[^7]。这种方法特别适合金融、气象等领域的时间序列预测任务。 #### 7. 数据集合并 当存在多个相关数据集时,可以通过合并它们来增加样本多样性[^8]。需要注意的是,必须确保不同数据集之间的分布一致,否则可能导致模型偏差。 --- ### 注意事项 在应用表格数据增强技术时,需注意以下几点: - **保持数据分布一致性**:增强后的数据应尽可能接近原始数据的真实分布。 - **避免过拟合**:过多的增强可能会导致模型过于复杂,反而降低泛化能力。 - **验证增强效果**:建议通过交叉验证评估增强技术对模型性能的实际影响。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值