[英]Timeseries input to an LSTM
我有包含從不同位置收集的水樣的數據集。 例如,ABC1 水樣取自亞利桑那州的一條河流,而 ABC2 水樣取自波士頓的一條河流。 它們都是河流,它們具有相同的特征列(pH、溫度等),但它們位於不同的位置,因此特征的變化對它們來說是個體的。 所以我的目標是創建一條河流 model因為我沒有足夠的數據來創建單個模型。 我想預測下個月的值總共有 11 列。 我的數據集如下所示:
Date Sample_Name pH temp etc...
2009-01-01 ABC1 7.2 12
2009-01-02 ABC2 5.5 11
.
.
2009-01-02 ABC1 7.2 10
2009-01-02 ABC2 7.3 10
.
.
2013-06-02 ABC2 6.5 22
2013-06-04 ABC1 6.5 22
.
2015-01-05 ABC1 8.9 13
2015-01-05 ABC4 8.8 13
我想將每個樣本及其序列提供給 LSTM model。 例如; ABC1 的每個測量(行)必須作為序列或批次提供給 model。 是否可以使用 TimeseriesGenerator 進行這種數據准備? 如前所述,我如何准備我的數據以將其提供給 model? 使用日期和樣本名稱(按字母順序)對數據集進行排序是否也有幫助? 我正在努力實現這樣的目標
我想使用以下方法生成數據:
from keras.preprocessing.sequence import TimeseriesGenerator
n_timesteps = 2
n_features = 10
batch_size = 5
generator = TimeseriesGenerator(df, df, length, sampling_rate = 10, stride = 1, batch_size = batch_size)
我想將數據輸入的簡單 LSTM model:
from keras.models import Sequential
from keras.layers import LSTM, Dense
from keras.utils import Sequence
model = Sequential()
model.add(LSTM(n_features, activation='relu', input_shape=(n_timesteps, n_features)))
model.add(Dense(10))
model.compile(optimizer='adam', loss='mse', metrics = ['accuracy'])
查看文檔,tf.keras.preprocessing.sequence.TimeseriesGenerator 不能將字典作為第一個參數。 “切片”錯誤只是這一事實的體現,因為 function 嘗試使用第一個參數(dict)的切片並失敗。 再次來自文檔:
Arguments:數據:包含連續數據點(時間步長)的可索引生成器(例如列表或 Numpy 數組)。
所以也許你想傳遞input_dict['ABC1']
或者可能input_dict['ABC1'].values
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.