我正在一个项目中,如果时间序列(例如D1,D2),我已经合并了2个数据集。 D1
的间隔为5-minutes
,D2
的间隔为1-minute
,因此我将D1
转换为1分钟的间隔,并与{{ 1}}。现在,我要根据以下条件将此新数据集D2
分为训练,测试和有效集:
注意:我进行了很多搜索,试图找到解决问题的方法,但找不到适合我问题的答案,请不要将其标记为重复! >
D1D2
这是我现在进行拆分的方式:
valid set
但是现在我需要在上述条件的基础上转换成火车,进行测试并拆分吗?
我该怎么做?也是分割时间序列数据集的正确方法吗?
答案 0 :(得分:2)
尝试一下:
valid_set = dataset.iloc[-60:, :]
test_set = dataset.iloc[-120:-60]
train_set = dataset.iloc[:-120]
概括:
def split_train_test(dataset, validation_size):
valid = dataset.iloc[-validation_size:, :]
train_test = dataset.iloc[:-validation_size)]
train_length = int(0.63 * len(train_test))
# split into input and outputs
train_X, train_y = train_test.iloc[:train_length, :-1], train_test.iloc[:train_length, -1]
test_X, test_y = train_test.iloc[train_length:, :-1], train_test.iloc[train_length:, -1]
valid_X, valid_y = valid.iloc[:, :-1], valid.iloc[:, -1]
return train_test, valid, train_X, train_y, test_X, test_y, valid_X, valid_y
您可以将%split rati作为参数传递给函数,而不是像我一样将其硬编码为函数。