Образец набора данных содержит точку местоположения пользователя.
df.head()
user tslot Location_point
0 0 2015-12-04 13:00:00 4356
1 0 2015-12-04 13:15:00 4356
2 0 2015-12-04 13:30:00 3659
3 0 2015-12-04 13:45:00 4356
4 0 2015-12-04 14:00:00 8563
df.shape
(288,3)
Поскольку точки местоположения являются категориальными значениями, они имеют одно горячее кодирование.
encoded = to_categorical(df['Location_point'])
Закодированные значения как ниже
[[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
...
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]]
Форма закодированных значений (288,8564).
Я пытался сформировать тренировочные данные
X_trai = []
y_trai = []
for i in range(96, 288):
X_trai.append(encoded[i-96:i])
y_trai.append(encoded[i])
X_trai, y_trai = np.array(X_trai), np.array(y_trai)
X_trai = np.reshape(X_trai, (X_trai.shape[0], X_trai.shape[1], 1))
А модель
regressor = Sequential()
regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (X_trai.shape[1], 1)))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
regressor.add(LSTM(units = 50))
regressor.add(Dropout(0.2))
regressor.add(Dense(units = 1))
regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')
regressor.fit(X_trai, y_trai, epochs = 100, batch_size = 32)
Это не правильная модель. Я новичок в углубленном изучении. Я пытался увидеть какой-то пример, но не смог понять ни одной горячей кодировки. Буду признателен, если кто-нибудь сможет объяснить форму ввода, форму вывода и правильную модель.
The input is the sequence of the location points and the output is to predict
the next location point for that user.