Symbolic Regression for Wind Speed Forecasting (EQL)

This repository contains a TensorFlow 2.x reproduction of the paper:

Symbolic regression for scientific discovery: an application to wind speed forecasting
Ismail Alaoui Abdellaoui, Siamak Mehrkanoon
arXiv:2102.10570

What was reproduced

  • Full Equation Learner (EQL) architecture with the original activation set:
    • Constant, Identity, Square, Sin, Sigmoid, Product
  • Two-phase training:
    1. Phase 1: Sparse-inducing L_{0.5} smooth regularization + rescaled MSE
    2. Phase 2: Masked fine-tuning (freeze zero weights, re-optimize)
  • Denmark hourly weather dataset (5 cities, 4 features, 4 lags, 6-hour ahead prediction)
  • Pretty-printing of discovered analytical formulas via SymPy

Repository structure

File Description
reproduce_eql.py Core library: network, functions, pretty-print, regularization, utils
run_full_experiment.py End-to-end training script with paper hyperparameters
prepare_denmark_data.py Generates .mat inputs from raw weather CSV
requirements.txt Dependencies

Dataset

The Denmark weather data (hourly, 1980โ€“2018) is available as a Hugging Face dataset:

๐Ÿ”— https://huggingface.co/datasets/Mengqinxue/eql-wind-speed-denmark

Quick start

pip install -r requirements.txt
python run_full_experiment.py --city Roskilde --steps_ahead 6 --feature wind_speed

Supported cities: Esbjerg, Odense, Roskilde.

Results

The script produces:

  • ExperimentsSR/Experiment*/ โ€” training logs, plots, weight histograms
  • summary_experiment*.txt โ€” final MAE, MSE, extracted formula
  • .hdf5 weight checkpoints for Phase 1 and Phase 2

Citation

@article{abdellaoui2021symbolic,
  title={Symbolic regression for scientific discovery: an application to wind speed forecasting},
  author={Abdellaoui, Ismail Alaoui and Mehrkanoon, Siamak},
  journal={arXiv preprint arXiv:2102.10570},
  year={2021}
}

Generated by ML Intern

This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = 'Mengqinxue/eql-wind-speed-forecasting'
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

For non-causal architectures, replace AutoModelForCausalLM with the appropriate AutoModel class.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Paper for Mengqinxue/eql-wind-speed-forecasting