Update inference.py
Browse files- inference.py +5 -3
inference.py
CHANGED
|
@@ -2,7 +2,6 @@ import pandas as pd
|
|
| 2 |
import numpy as np
|
| 3 |
from statsmodels.tsa.arima.model import ARIMA
|
| 4 |
from sklearn.preprocessing import MinMaxScaler
|
| 5 |
-
from sklearn.metrics import mean_squared_error
|
| 6 |
from tensorflow.keras.models import Sequential
|
| 7 |
from tensorflow.keras.layers import LSTM, Dense
|
| 8 |
|
|
@@ -56,12 +55,15 @@ def lstm_forecast(ts_data, look_back=60, steps=5, epochs=20):
|
|
| 56 |
model.fit(X, y, epochs=epochs, batch_size=32, verbose=0)
|
| 57 |
|
| 58 |
# Forecast future steps
|
| 59 |
-
last_seq = scaled_data[-look_back:].reshape(1, look_back,1)
|
| 60 |
predictions = []
|
|
|
|
| 61 |
for _ in range(steps):
|
| 62 |
pred = model.predict(last_seq, verbose=0)
|
| 63 |
predictions.append(pred[0,0])
|
| 64 |
-
|
|
|
|
|
|
|
| 65 |
|
| 66 |
predictions = scaler.inverse_transform(np.array(predictions).reshape(-1,1))
|
| 67 |
return predictions.flatten().tolist()
|
|
|
|
| 2 |
import numpy as np
|
| 3 |
from statsmodels.tsa.arima.model import ARIMA
|
| 4 |
from sklearn.preprocessing import MinMaxScaler
|
|
|
|
| 5 |
from tensorflow.keras.models import Sequential
|
| 6 |
from tensorflow.keras.layers import LSTM, Dense
|
| 7 |
|
|
|
|
| 55 |
model.fit(X, y, epochs=epochs, batch_size=32, verbose=0)
|
| 56 |
|
| 57 |
# Forecast future steps
|
| 58 |
+
last_seq = scaled_data[-look_back:].reshape(1, look_back, 1)
|
| 59 |
predictions = []
|
| 60 |
+
|
| 61 |
for _ in range(steps):
|
| 62 |
pred = model.predict(last_seq, verbose=0)
|
| 63 |
predictions.append(pred[0,0])
|
| 64 |
+
# Fix: reshape pred to 3D and append to sequence
|
| 65 |
+
pred_reshaped = pred.reshape(1, 1, 1)
|
| 66 |
+
last_seq = np.concatenate([last_seq[:,1:,:], pred_reshaped], axis=1)
|
| 67 |
|
| 68 |
predictions = scaler.inverse_transform(np.array(predictions).reshape(-1,1))
|
| 69 |
return predictions.flatten().tolist()
|