LSTM Time Series Forecasting (Full Python Code)
This example uses TensorFlow/Keras to predict future values from a dataset.
Step 1: Install Required Libraries
pip install numpy pandas matplotlib scikit-learn tensorflow
Step 2: Import Libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout
Step 3: Load Dataset
Example: You can use any CSV file with one column (like stock prices)
data = pd.read_csv('data.csv')
dataset = data.iloc[:, 1:2].values # select one column
Step 4: Normalize Data
scaler = MinMaxScaler(feature_range=(0,1))
scaled_data = scaler.fit_transform(dataset)
Step 5: Create Time Sequences
Using last 60 values to predict next value:
X_train = []
y_train = []
for i in range(60, len(scaled_data)):
X_train.append(scaled_data[i-60:i, 0])
y_train.append(scaled_data[i, 0])
X_train, y_train = np.array(X_train), np.array(y_train)
Step 6: Reshape Data for LSTM
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
Step 7: Build LSTM Model
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X_train.shape[1],1)))
model.add(Dropout(0.2))
model.add(LSTM(units=50, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(units=1))
Step 8: Compile Model
model.compile(optimizer='adam', loss='mean_squared_error')
Step 9: Train Model
model.fit(X_train, y_train, epochs=20, batch_size=32)
Step 10: Make Predictions
predicted = model.predict(X_train)
predicted = scaler.inverse_transform(predicted)
Step 11: Plot Results
plt.plot(scaler.inverse_transform(scaled_data), color='blue', label='Actual Data')
plt.plot(predicted, color='red', label='Predicted Data')
plt.legend()
plt.show()
Simple LSTM Workflow Diagram (Easy Explanation)
Here’s a simple way to visualize how LSTM works:
Input Time Series Data
↓
Data Preprocessing (Cleaning + Scaling)
↓
Create Sequences (Time Steps)
↓
LSTM Model
↓ ↓ ↓
Forget Input Output Gates
↓
Dense Layer (Prediction)
↓
Forecast Output
How It Works (Super Simple)
Imagine this:
- You give the model past 60 days of stock prices
- LSTM "remembers patterns"
- It predicts the 61st day
Then: 👉 It keeps learning patterns like trends + seasonality
Beginner Tips (Important )
- Start with small epochs (10–20)
- Use 1 or 2 LSTM layers only
- Always normalize data
- Avoid very large datasets at the beginning
- Visualize predictions to understand errors
Bonus: Improve Accuracy
You can try:
- Increase epochs (50–100)
- Add more LSTM layers
- Use Bidirectional LSTM
- Tune batch size
- Add more features (temperature, volume, etc.)