Действительно ли объединить отстающие и топологические (TDA) функции в LSTM, чтобы предсказать следующее время во временPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Действительно ли объединить отстающие и топологические (TDA) функции в LSTM, чтобы предсказать следующее время во времен

Сообщение Anonymous »

Я работаю над проблемой прогнозирования временных рядов, используя модель LSTM, чтобы предсказать следующее значение времени в пути на каждом шаге. Набор данных содержит 5-минутные значения времени агрегированного времени для конкретной поездки. < /P>
Чтобы повысить производительность модели, я комбинировал: < /p>
  • 10 Значения задержки в пути (т.е., T-1 до T-1) с использованием метода Spling Window < /p>
    < /li>
На каждом шаге, i:
  • Принимайте вращательное окно 10 прошлых значений. /> Извлекать 9 функций на основе TDA из этого окна (они не изменяются в определенном окне и генерируются один раз в окне). < /p>
    < /li>
    сохраняют одни и те же значения, что и черты лага. />
  • Use this to predict the next travel time (t+1).
Then I reshape the data as:
  • samples = number of windows
  • timeSteps = 1
  • функции = 19 (9 TDA + 10 лагеря)
. Прогнозирование? Альтернативная/лучшая архитектура при смешивании статических + последовательных функций? PrettyPrint-Override "># Extract lagged + TDA features
def extract_all_features(series, win=10, dim=3, delay=1):
data = []
for i in range(len(series) - win - 10):
segment = series[i:i+win]
cloud = time_delay_embedding(segment, delay, dim)
rips = gd.RipsComplex(points=cloud).create_simplex_tree(max_dimension=2)
rips.persistence()
h0 = rips.persistence_intervals_in_dimension(0)
h1 = rips.persistence_intervals_in_dimension(1)
h0_vals = replace_inf(h0)
h1_vals = replace_inf(h1)
row = [
len(h0_vals), np.mean(h0_vals) if h0_vals else 0,
persistent_entropy([(0, p) for p in h0_vals]),
l_norm([(0, p) for p in h0_vals], p=1),
l_norm([(0, p) for p in h0_vals], p=2),
len(h1_vals), np.mean(h1_vals) if h1_vals else 0,
l_norm([(0, p) for p in h1_vals], p=1),
l_norm([(0, p) for p in h1_vals], p=2)
]
lags = [series[i + win - j] for j in range(1, 11)]
data.append(row + lags + [series[i + win]])
return np.array(data)

# Reshape for LSTM
X = features[:, :-1]
y = features[:, -1]
X_scaled = MinMaxScaler().fit_transform(X)
y_scaled = MinMaxScaler().fit_transform(y.reshape(-1, 1))

X_train = X_scaled[train_mask]
X_val = X_scaled[val_mask]
X_train = X_train.reshape((X_train.shape[0], 1, X_train.shape[1]))
X_val = X_val.reshape((X_val.shape[0], 1, X_val.shape[1]))

# LSTM model
model = Sequential([
LSTM(64, return_sequences=True, input_shape=(1, X_train.shape[2])),
Dropout(0.2),
LSTM(32),
Dropout(0.2),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, validation_data=(X_val, y_val),
epochs=100, batch_size=16, callbacks=[EarlyStopping(patience=10)])


Подробнее здесь: https://stackoverflow.com/questions/796 ... to-predict
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»