我有大约 30% 和 70% 的 0 类(少数类)和 1 类(多数类)。由于我没有很多数据,我计划对少数类进行过采样以平衡这些类,使其成为 50-50 的分割。我想知道是否应该在将数据拆分为训练集和测试集之前或之后进行过采样。在拆分在线示例之前,我通常已经看到它完成了,如下所示:
df_class0 = train[train.predict_var == 0]
df_class1 = train[train.predict_var == 1]
df_class1_over = df_class1.sample(len(df_class0), replace=True)
df_over = pd.concat([df_class0, df_class1_over], axis=0)
但是,这是否意味着测试数据可能会从训练集中重复样本(因为我们对训练集进行了过采样)?这意味着测试性能不一定要基于新的、看不见的数据。我很好这样做,但我想知道什么被认为是好的做法。谢谢!