在机器学习领域中,数据不平衡是一个常见的问题。当训练数据集中的不同类别样本数量差异较大时,深度神经网络的性能可能受到影响。为了解决这个问题,可以采用过采样和欠采样技术来平衡数据集,以改善模型的训练效果。本文将介绍过采样和欠采样的概念,并提供相应的源代码示例。
过采样(Oversampling)
过采样是一种通过增加少数类别样本数量来平衡数据集的方法。它的目标是生成新的合成样本,使得少数类别的样本数量与多数类别相当。最常用的过采样方法是SMOTE(Synthetic Minority Over-sampling Technique),它基于对少数类别样本进行插值来生成新样本。
下面是一个使用Python和Scikit-learn库中的SMOTE算法进行过采样的示例代码:
from imblearn.over_sampling import SMOTE
# 假设X和y分别是特征和标签
X_resampled, y_resampled = SMOTE()