Имея данные датчиков временного ряда:
+----+----------+----------+------+
|day |Feature 1 |Feature 2 |target|
+----+----------+----------+------+
|0 |0.2 |0.1 |0.01 |
+----+----------+----------+------+
|... until day 30
Я построил модель LSTM, которая предсказывает целевое значение 30-го дня на основе первых 7 дней.
model = Sequential()
model.add(LSTM(32, activation='tanh', input_shape=(num_samples, num_features))),
model.add(Dense(32, activation='relu')),
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='mse', optimizer="adam", metrics=['mae', 'mse'])
Модель MSE составляет 0,05, но, глядя на данные, я вижу, что в большинстве случаев целевая оценка на 30-й день находится в пределах определенного диапазона c. Так что моя модель в большинстве случаев правильно предсказывает и пропускает, когда есть аномалия (это то, что я пытаюсь уловить).
Я рассмотрел методы обработки несбалансированных данных с проблемами классификации, например, более -выборка, недовыборка и SMOTE. Однако я не смог найти ничего относительно проблемы регрессии временных рядов.