Monday, March 23, 2026

LSTM Time Series Forecasting with Full Python Code

 


 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.)

Mastering AI Tools: A Beginner’s Guide

Mastering AI Tools: A Beginner’s Guide Artificial Intelligence (AI) is no longer a futuristic concept—it is a powerful part of our everyday...