繁体   English   中英

如何使用 DataFrame 的行创建 DataLoader?

[英]How do I create a DataLoaders using rows of a DataFrame?

我正在尝试创建一个 model 来预测下一行值。 有 7 列,但我只使用前 6 列。我认为如果我将第 7 列中的日期时间传递给 model,这将保证过拟合。 这是DataFrame的截图: 显示 X 和 Y 值的 DataFrame

我正在使用任意数量的行,在这种情况下为 100 行来进行此预测。 我只需要知道一些创建 DataLoader 的方法,其中 y 值是我要预测的行,x 值是前面的 100 行。

如果有办法用 DataBlock 做到这一点,那将是首选。 我曾考虑过使用.loc 和.iloc,但我不知道如何使用它们来创建DataLoader。

像这样创建您的自定义数据集:

class TimeSeriesDataset:
    def __init__(self, df, input_features: list, 
                 output_features: list, lookback=99, lookahead=1):
        self.df = df
        self.lookback = lookback
        self.lookahead = lookahead

    def __len__(self):
        return len(self.df) - self.lookback

    def __getitem__(self, idx):
        idx += self.lookback
        lookback = self.df.iloc[idx-self.lookback:idx]
        lookahead = self.df.iloc[idx]
        lookback = lookback[self.input_features].values
        lookahead = lookahead[self.output_features].values
        X = T.tensor(lookback)
        y = T.tensor(lookahead)
        return X, y

然后像这样制作你的数据加载器。

dataset = TimeSeriesDataset(df, input_features, ouput_features)
dataloader = DataLoader(dataset, batch_size=batch_size)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM