簡體   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