我试图通过使用大多数类的随机欠采样来平衡数据帧。它已经成功了,但是,我还想将已经从数据帧(欠采样)中删除的数据保存到新的数据帧中。我该如何做到这一点?
这是我用来对数据帧
进行欠采样的代码from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler(sampling_strategy=1)
X_res, y_res = rus.fit_resample(X, y)
df1 = pd.concat([X_res, y_res], axis=1)
RandomUnderSampler
有一个属性sample_indices_
,表示保留子样本的指标。这应该是:
dropped_ids = [i for i in range(X.shape[0]) if i not in rus.sample_indices_]
X.iloc[dropped_ids] # for dataframes
X[dropped_ids, :] # for numpy arrays