Skip to content

Repository files navigation

Energy Prediction Toolkit

A comprehensive machine learning toolkit for building energy consumption prediction, featuring advanced LSTM models with Firefly Algorithm optimization and support for multiple datasets.

🎯 Overview

This project implements and evaluates various energy prediction models including:

  • ModLSTM: Modified LSTM with Firefly Algorithm optimization
  • Standard LSTM: Baseline LSTM implementation
  • SAMFOR: Sequential Attention-based Model for Forecasting
  • SVR/RFR: Support Vector Regression and Random Forest baselines

The toolkit supports two datasets:

  • Portuguese Dataset: Single-household energy consumption data
  • ASHRAE Dataset: Multi-building commercial energy consumption data

πŸ“ Repository Structure

Energy-Prediction/
β”œβ”€β”€ models/                     # Model implementations
β”‚   β”œβ”€β”€ LSTM_comb.py           # Main LSTM training pipeline
β”‚   β”œβ”€β”€ LSTM_hyperpara_search.py # Firefly Algorithm hyperparameter optimization
β”‚   β”œβ”€β”€ SAMFOR_trial1.py        # SAMFOR model implementation
β”‚   └── SVR_energy_data_paper2.py # SVR/RFR baseline models
β”œβ”€β”€ tools/                      # Data preprocessing utilities
β”‚   β”œβ”€β”€ preprocess_data2.py    # Shared utilities for Portuguese dataset
β”‚   β”œβ”€β”€ preprocessing_ashrae.py # ASHRAE-specific preprocessing
β”‚   └── resample_dataset.py    # Data resampling utilities
β”œβ”€β”€ dataset/                    # Datasets
β”‚   β”œβ”€β”€ 1Hz/                   # Original Portuguese dataset (1Hz)
β”‚   β”œβ”€β”€ resampled data/        # Resampled Portuguese data
β”‚   └── ASHRAE/                # ASHRAE Great Energy Predictor III dataset
β”œβ”€β”€ results/                    # Model outputs and results
β”‚   β”œβ”€β”€ 1s/                    # Portuguese dataset results
β”‚   └── ashrae/                # ASHRAE dataset results
β”œβ”€β”€ niapy/                      # Firefly Algorithm implementation
└── config.py                  # Configuration settings

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • TensorFlow/Keras
  • scikit-learn
  • pandas, numpy
  • matplotlib, seaborn

Installation

  1. Clone the repository:
git clone <repository-url>
cd Energy-Prediction
  1. Create a virtual environment:
conda create -n FF python=3.8
conda activate FF
  1. Install dependencies:
pip install tensorflow keras scikit-learn pandas numpy matplotlib seaborn

Usage

Portuguese Dataset Training

  1. Train LSTM model:
python models/LSTM_comb.py
  1. Run hyperparameter optimization:
python models/LSTM_hyperpara_search.py
  1. Train baseline models:
python models/SVR_energy_data_paper2.py
python models/SAMFOR_trial1.py
  1. Generate comparative results:
python plot_results.py

ASHRAE Dataset

  • SVR baseline (disjoint buildings)
conda run -n FF python -m ashrae.call_svr_ashrae
  • SAMFOR baseline
conda run -n FF python -m ashrae.call_samfor_ashrae
  • LSTM Hyperparameter Search (overnight)
conda run -n FF python -m ashrae.call_lstm_search_ashrae

πŸ“ Centralized ASHRAE Results

All ASHRAE models now use a centralized results saving system:

results/ashrae/
β”œβ”€β”€ svr/
β”‚   β”œβ”€β”€ metrics.csv              # Model performance metrics
β”‚   β”œβ”€β”€ model_info.json          # Model parameters and metadata
β”‚   └── artifacts/
β”‚       └── SVR_ASHRAE.obj       # Unscaled predictions and test data
β”œβ”€β”€ samfor/
β”‚   β”œβ”€β”€ metrics.csv
β”‚   β”œβ”€β”€ model_info.json
β”‚   └── artifacts/
β”‚       └── SAMFOR.obj
└── lstm/
    β”œβ”€β”€ metrics.csv              # LSTM results (from log_results_LSTM)
    β”œβ”€β”€ model_info.json          # Best parameters and metadata
    β”œβ”€β”€ training_log.json        # Training history and convergence
    └── artifacts/
        └── LSTM_ModFF.obj       # Unscaled predictions and test data

Standardized Artifacts Include:

  • Unscaled ground truth (y_test) and predictions (y_test_pred)
  • Model parameters, timing, and metadata
  • Consistent file naming and structure across all models

πŸ“Š Datasets

Portuguese Dataset

  • Source: Single-household energy consumption data
  • Frequency: 1Hz (resampled to 1s)
  • Features: Power consumption measurements
  • Preprocessing: MinMax scaling, sliding window sequencing
  • Sequence Length: 23 timesteps

ASHRAE Dataset

  • Source: ASHRAE Great Energy Predictor III (Kaggle)
  • Scope: Multi-building commercial energy consumption
  • Features: Building metadata, weather data, temporal features
  • Preprocessing: MinMax scaling (fit on train only), one-hot encoding; building_id preserved and not scaled for windowing
  • Sequence Length: 23 timesteps
  • Sample Size: ~130,000 total windows using disjoint building splits (Trainβ‰ˆ52k, Valβ‰ˆ26k, Testβ‰ˆ52k)
  • Resampling: None for ASHRAE 1s/1Hz; dataset already at target granularity

πŸ”§ Key Features

Advanced LSTM Models

  • ModLSTM: Modified LSTM architecture with optimized hyperparameters
  • Firefly Algorithm: Bio-inspired optimization for hyperparameter tuning
  • Early Stopping: Prevents overfitting during training
  • Sequence-to-One: Predicts next timestep energy consumption

Comprehensive Preprocessing

  • Feature Engineering: Temporal, building, and weather features
  • Missing Value Imputation: Mean imputation for numerical features
  • Normalization: Dataset-specific scaling (MinMax vs Z-score)
  • Sequential Cropping: Time-series consistent data sampling

Evaluation Metrics

  • RMSE: Root Mean Square Error
  • MAE: Mean Absolute Error
  • MAPE: Mean Absolute Percentage Error
  • RMSLE: Root Mean Squared Logarithmic Error
  • RΒ²: Coefficient of Determination

πŸ”¬ Research Context

Problem Statement

Building energy consumption prediction is crucial for:

  • Smart Grid Management: Optimizing energy distribution and demand response
  • Building Optimization: Improving HVAC system efficiency and occupant comfort
  • Sustainability Goals: Supporting Net-Zero Energy Building (NZEB) initiatives
  • Cost Reduction: Minimizing energy costs through predictive maintenance

Challenges in Energy Prediction

  1. Temporal Dependencies: Energy consumption exhibits complex time-series patterns
  2. Multi-scale Variability: Patterns vary across hours, days, seasons, and years
  3. External Factors: Weather, occupancy, and building characteristics significantly impact consumption
  4. Data Quality: Missing values, outliers, and measurement errors in sensor data
  5. Generalizability: Models trained on single buildings may not generalize to diverse building types

Model Architecture Rationale

  • LSTM Networks: Capture long-term dependencies in time-series data
  • ModLSTM: Enhanced LSTM with optimized architecture for energy prediction
  • Firefly Algorithm: Bio-inspired optimization for hyperparameter tuning
  • Attention Mechanisms: Focus on relevant temporal patterns (SAMFOR)
  • Ensemble Methods: Combine multiple models for robust predictions

πŸ› οΈ Configuration

Key hyperparameters (from Table II):

  • LSTM Units: 72
  • Learning Rate: 0.010
  • Sequence Length: 23
  • Batch Size: 64
  • Epochs: 50 (with early stopping)

πŸ“ Implementation Details

Data Preprocessing Pipeline

  1. Data Loading: Load raw datasets
  2. Merging: Join building metadata and weather data
  3. Feature Engineering: Create temporal and categorical features
  4. Normalization: Apply dataset-specific scaling
  5. Sequencing: Generate sliding window sequences for LSTM
  6. Splitting: Train/validation/test splits

Model Training Pipeline

  1. Model Building: Construct LSTM architecture
  2. Compilation: Configure optimizer and loss function
  3. Training: Fit model with early stopping
  4. Evaluation: Compute metrics on test set
  5. Persistence: Save model and results

Dataset Diversity Challenge

This toolkit addresses a critical limitation in energy prediction research: Limited Dataset Diversity. Most studies focus on single buildings or homogeneous datasets, limiting model generalizability.

Our Approach:

  • Multi-Dataset Validation: Portuguese residential + ASHRAE commercial data
  • Diverse Building Types: Single-family homes vs. multi-building commercial complexes
  • Different Climates: Portuguese climate vs. multiple US climate zones
  • Varied Meter Types: Electricity vs. multiple utility types (electricity, chilled water, steam, hot water)
  • Scale Differences: Single building vs. thousands of buildings

Methodological Contributions

  1. Unified Preprocessing Pipeline: Consistent feature engineering across datasets
  2. Adaptive Normalization: Dataset-specific scaling strategies
  3. Memory-Efficient Processing: Sequential cropping for large datasets
  4. Comprehensive Evaluation: Multiple metrics on original-scale data
  5. Reproducible Research: Complete preprocessing and training pipelines

πŸ“š Background Literature

Energy Prediction in Buildings

Building energy consumption prediction has evolved from simple regression models to sophisticated deep learning approaches. Key developments include:

  • Traditional Methods: Linear regression, ARIMA, and support vector machines
  • Machine Learning: Random forests, gradient boosting, and neural networks
  • Deep Learning: LSTM, GRU, and transformer-based models
  • Hybrid Approaches: Combining physical models with data-driven methods

Time Series Forecasting Challenges

Energy consumption exhibits unique characteristics:

  • Seasonality: Daily, weekly, and annual patterns
  • Non-stationarity: Changing patterns over time
  • External Dependencies: Weather, occupancy, and building operations
  • Multi-scale Dynamics: Short-term fluctuations and long-term trends

Optimization in Neural Networks

Hyperparameter optimization is crucial for model performance:

  • Grid Search: Exhaustive but computationally expensive
  • Random Search: More efficient than grid search
  • Bayesian Optimization: Model-based optimization
  • Bio-inspired Algorithms: Firefly, particle swarm, genetic algorithms

πŸ“š References

  • ASHRAE Great Energy Predictor III: Kaggle Competition
  • Firefly Algorithm: Yang, X.S. (2008). Nature-Inspired Metaheuristic Algorithms
  • LSTM Networks: Hochreiter, S. & Schmidhuber, J. (1997). Long Short-Term Memory
  • Energy Prediction: Ahmad, T. et al. (2018). A review on renewable energy and electricity requirement forecasting

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ› Troubleshooting

Common Issues

  1. Memory Errors: Reduce max_samples in preprocessing
  2. Import Errors: Ensure all dependencies are installed
  3. Path Issues: Check dataset paths in configuration files
  4. CUDA Issues: Verify TensorFlow GPU installation

Support

For issues and questions:

  • Check the troubleshooting section
  • Review the preprocessing reports
  • Examine the test scripts for examples

Note: This toolkit is designed for research purposes and addresses the challenge of limited dataset diversity in energy prediction research.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages