如何针对具有多个可变和不同时间序列大小的多个时间序列训练LSTM?

时间:2020-03-09 12:20:40

标签: python tensorflow time-series data-science lstm

我有一个航空器消息数据集,其中有一个列,用于标识每个航空器示例:

idaircraft = 1,时间戳= 340503404,海拔= xxxxxx,经度= xxxxx,纬度= xxxxx,触地得分= 23423554

预测新飞机着陆参数的关键点。每个时间序列的数据都不同,例如在idaircraft = 1中我有900条消息,对于飞机2我有668条消息....

目前我正尝试将其余时间分开的每个时间序列训练为增量模型,然后根据所有路线进行预测。

这就是我所做的:

在火车和测试中的拆分系列:

367

dftrain=df.loc[df["idaircraft"]<367]
dftest=df.loc[df['idaircraft']>368]
dftrain.head()

现在尝试使数据受监管

from sklearn.preprocessing import MinMaxScaler
# Form dataset matrix
def create_dataset(dataset, previous=1):
    dataX, dataY = [], []
    for i in range(len(dataset)-previous-1):
        a = dataset[i:(i+previous), 0]
        dataX.append(a)
        dataY.append(dataset[i + previous, 0])
    return np.array(dataX), np.array(dataY)

在这里训练模型:

Nmodel = 0

for name, group in dftrain.groupby('idaircraft'):
    seleccionX = group
    scaler = MinMaxScaler(feature_range=(0, 1))
    train = scaler.fit_transform(seleccionX)
    #Select full time series with len-10
    previous = len(group)-10
    X_train, Y_train = create_dataset(train, previous)
    X_train = np.reshape(X_train, (X_train.shape[0], 1, X_train.shape[1]))
    model = tf.keras.Sequential()
    model.add(tf.keras.layers.LSTM(50, input_shape=(1, previous)))
    model.add(tf.keras.layers.Dense(1))
    model.compile(loss='mse', optimizer='adam')
    model.fit(X_train, Y_train, epochs=10, batch_size=128, verbose=2)
    modelosRestantes = modelosRestantes +1
    if((Nmodel%5) == 0):
        model.save(path)
        print("Model Saved: ", Nmodel)
    print("Ramaining series: ", Nmodel ,"de 367")

我不确定即时通讯是否正确执行,有人可以给我一些建议!因为我不知道我是否预测我需要的变量是“ Touchdown”,以及我是否正确地训练了模型。

0 个答案:

没有答案