我有兩個不同的文件。z_df 和 s_df。他們的第一列是相同的(它是時間點)。每一行都是一個唯一的時間實例。現在我想分別在 z_df 和 s_df 上構建一個分類器。那也行。但問題是我想為他們的訓練和測試集使用相同的索引。例如,如果選擇 z_df 的前 4 行進行訓練,那么也必須選擇 s_df 的前 4 行。 z_df.shape, s_df.shape: ((450865, 5), (450865, 930)) train_df, test_df = train_test_split(z_df, test_size=TEST_SIZE, shuffle=True ) train_df.shape: (315605, 5) m=train_df[0].tolist() len(m), train_df.shape: (315605, (315605, 5)) s_train=s_df[s_df[0].isin(m)] s_train.shape, train_df.shape: ((362774, 930), (315605, 5))如您所見,s_train 的行數與 train_df 的行數不同。為什么??我用第一列來稱呼他們。為什么會這樣?我究竟做錯了什么?
1 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
這很可能是因為您s_df[0]包含重復項。這可以通過 來確認len(s_df[0]) == len(s_df[0].unique())。
要對兩個數據集進行采樣:
is_train = np.random.choice((True, False), size=len(s_df), p=(0.7, 0.3))
s_train, z_train = s_df[is_train], z_df[is_train]
s_test, z_test = s_df[~is_train], z_df[~is_train]
添加回答
舉報
0/150
提交
取消