我有一个航空器消息数据集,其中有一个列,用于标识每个航空器示例:
idaircraft = 1,时间戳= 340503404,海拔= xxxxxx,经度= xxxxx,纬度= xxxxx,触地得分= 23423554
预测新飞机着陆参数的关键点。每个时间序列的数据都不同,例如在idaircraft = 1中我有900条消息,对于飞机2我有668条消息....
目前我正尝试将其余时间分开的每个时间序列训练为增量模型,然后根据所有路线进行预测。
这就是我所做的:
在火车和测试中的拆分系列:
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”,以及我是否正确地训练了模型。