表格数据增强方法
对于表格数据,可以考虑以下方法:
-
噪声注入(Noise Injection):
- 在一些数值列中添加微小随机噪声。
-
数据合成(Data Synthesis):
- 使用生成模型(如GANs)生成新的样本。
-
SMOTE(Synthetic Minority Over-sampling Technique):
- 主要用于处理不平衡数据集,通过合成少数类样本来平衡数据集。
-
特征扰动(Feature Perturbation):
- 在特征值上进行小范围的扰动。
-
目标扰动(Target Perturbation):
- 对目标值添加微小扰动。
以下是一个使用imbalanced-learn
库中SMOTE方法的示例:
import pandas as pd
from imblearn.over_sampling import SMOTE
# 创建一个示例DataFrame
data = {'feature1': [1, 2, 3, 4, 5,2,2,3,4,5], 'feature2': [10, 20, 30, 40, 50,2,2,3,4,5], 'label': [0, 0, 0, 1, 1,1,1,0,1,0]}
df = pd.DataFrame(data) # 分离特征和标签
X = df[['feature1', 'feature2']]
y = df['label'] # 应用SMOTE进行样本合成
smote = SMOTE(sampling_strategy='auto', random_state=42)
X_res, y_res = smote.fit_resample(X, y) # 合成为新的DataFrame
df_resampled = pd.DataFrame(X_res, columns=['feature1', 'feature2'])
df_resampled['label'] = y_res
print(df_resampled)