使用Python将时间序列数据拆分为训练集和有效集

我正在一个项目中,如果时间序列(例如D1,D2),我已经合并了2个数据集。 D1的间隔为5-minutesD2的间隔为1-minute,因此我将D1转换为1分钟的间隔,并与{{ 1}}。现在,我要根据以下条件将此新数据集D2分为训练,测试和有效集:

  

注意:我进行了很多搜索,试图找到解决问题的方法,但找不到适合我问题的答案,请不要将其标记为重复! >

  1. 有效集应为数据集末尾的60个值。
  2. 然后,测试集应该是直到 D1D2
  3. 然后,我将为火车设置剩余的数据。

这是我现在进行拆分的方式:

valid set

但是现在我需要在上述条件的基础上转换成火车,进行测试并拆分吗?

我该怎么做?也是分割时间序列数据集的正确方法吗?

xb588172 回答:使用Python将时间序列数据拆分为训练集和有效集

尝试一下:

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:,train_test.iloc[train_length:,-1]
    valid_X,valid_y = valid.iloc[:,valid.iloc[:,-1]

    return train_test,valid,train_X,train_y,test_X,test_y,valid_X,valid_y

您可以将%split rati作为参数传递给函数,而不是像我一样将其硬编码为函数。

本文链接:https://www.f2er.com/3058265.html

大家都在问