Official implementation of the paper LogicGate: Adaptive Rule-Based Modeling of Exogenous Effects for Time Series Forecasting.
LogicGate is a forecasting framework for exogenous-aware time series prediction.
Compared with static rule sets and shallow fusion methods, this implementation focuses on:
- dynamic rule filtering based on current exogenous context,
- cross-modal fusion between time-series patches and rule semantics,
- dual-track self-optimization of rule quality during training.
pip install -r requirements.txtRecommended environment:
- Python 3.10+
- PyTorch 2.0+
If you use optimization mode, set API key in environment variables:
# Linux/Mac
export OPENAI_API_KEY=your_key
# Windows PowerShell
$env:OPENAI_API_KEY="your_key"Put datasets under dataset/ (or pass custom paths via --root_path and --data_path).
- Default global rule file:
config/rule_patterns.json - Dataset-specific rule files:
config/rule_config/rule_patterns_BE.jsonrule_patterns_DE.jsonrule_patterns_ETTh1.jsonrule_patterns_FR.jsonrule_patterns_NP.jsonrule_patterns_wet_bulb.json
Rule files are used by:
--rules_list(load rule text for model input)--rule_config_path(rule-pattern filtering/analysis path)
python train.py \
--task_name long_term_forecast \
--is_training 1 \
--model_id demo_baseline \
--model_comment baseline \
--model logicgate \
--data ETT_exog \
--root_path ./dataset/electricity-price \
--data_path NP.csv \
--features MS \
--target OT \
--seq_len 168 \
--label_len 48 \
--pred_len 24 \
--enc_in 3 --dec_in 3 --c_out 1 \
--train_epochs 10 \
--batch_size 16 \
--learning_rate 0.001 \
--optimization_mode baselinepython train.py ... --optimization_mode monitoringpython train.py ... \
--optimization_mode optimization \
--optimization_config config/optimization_config_stage4.json \
--rules_list config/rule_patterns.json \
--rule_config_path config/rule_patterns.jsonOr use the stage-4 runner:
python run_optimization_stage4.pypython script/run_NP.py \
--task_name long_term_forecast \
--is_training 1 \
--model_id np_demo \
--model_comment test \
--model logicgate \
--data ETT_exogImportant config files:
config/rule_patterns.jsonconfig/optimization_config.jsonconfig/optimization_config_stage4.json(for stage-4 optimization flow)
Common arguments in train.py:
--optimization_mode:baseline | monitoring | optimization--rules_list: rule file used for model rule text loading--rule_config_path: rule file path used in filtering/analysis--optimization_config: optimization pipeline config path--rule_filter_method:basic | fast--num_exog_vars: number of exogenous variables
