1

我试图在这里对一个充满滑动窗口的数据框进行 SMOTE:

数据框

我正在使用 imblearn 的 SMOTE() 函数。没有任何操作,我得到一个错误,每个单元格必须有一个大小为 1 的数组。按行单独 SMOTING 或在每个窗口(相同索引)上分解数据框和 SMOTING 会导致 ValueError ,因为每次 SMOTE 尝试中只有一个类。我如何解决这个问题,即想要 SMOTE 整个滑动窗口而不聚合它们或通过将其保存在第一张图片的数据框中来获得尺寸错误?

new_df_labels = X_with_labels.reset_index().apply(pd.Series.explode)
new_df = X_smoted.reset_index().apply(pd.Series.explode)
np.unique(new_df.index)

X_list = pd.DataFrame(columns = X_smoted.columns)
y_list = []

for j in np.unique(new_df.index):
    new_df1 = new_df[new_df.index == j]
    new_df_labels1 = new_df_labels[new_df_labels.index == j]
    X_smoted_1, y_smoted_1 = smot.fit_resample(new_df1, new_df_labels1['Activity'])
    X_list = X_list.append(X_smoted_1)
    y_list.append(y_smoted_1.ravel())

爆炸数据框

4

0 回答 0