我的数据集非常不平衡。两个少数类别中,每个都只包含多数类别样本的一半。我的RNN模型无法学习最不常见的类别。
我正在尝试使用imbalanced-learn
库。例如:
sm = SMOTE(random_state=42, n_jobs=-1, k_neighbors=10)
X_train, y_train = sm.fit_resample(train.drop(['label], axis=1), train['label'])
如果train.drop(['label'])
只包含使用的特征值,则此方法有效。问题在于我的DataFrame还包含一个包含字符串的额外列作为值:我不能删除它,因为这些字符串是我的RNN的输入。如果我删除它,我将无法告诉过采样数据集中的哪一行属于哪些字符串。
有没有办法保留所有列并告诉函数哪些列用于过采样?