https://github.com/biaslab/cdc-2022

Experiments and derivations for CDC2022 paper on message passing-based inference for NARMAX system identification.

https://github.com/biaslab/cdc-2022

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

message-passing narmax system-identification
Last synced: 6 months ago · JSON representation

Repository

Experiments and derivations for CDC2022 paper on message passing-based inference for NARMAX system identification.

Basic Info
  • Host: GitHub
  • Owner: biaslab
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 812 MB
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
message-passing narmax system-identification
Created over 4 years ago · Last pushed over 3 years ago
Metadata Files
Readme

README.md

This repository contains a set of experiments for the inference in Nonlinear AutoRegressive Moving Average with eXogenous input (NARMAX) through message-passing.

Dependencies

Before running the experiments, you need to have Julia 1.6.x installed on your machine. We use the DrWatson.jl package to structure our experiments such that you can reproduce them quickly. DrWatson.jl has to be installed in your global Julia environment before running the experiments. You can add DrWatson.jl by calling

(@v1.6) pkg> add DrWatson

or

julia -e 'import Pkg; Pkg.add("DrWatson")

We use git-lfs to commit binaries (e.g. plots and images) in the repository. While it's not required, it's highly recommended to have it installed on your machine.

Instantiating

For reproducibility, we have fixed the versions of all required packages in this project. To instantiate the project, you may use the following command in a terminal:

julia --project -e 'import Pkg; Pkg.instantiate()'

This command will install all required packages and will prepare the project environment.

Experiments

The experiments are located in the experiments folder. To run Julia experiment, you may use the following command in a terminal:

julia experiments/synth_narmax.jl

It is also possible to run experiments from any IDE (Visual Studio Code), or within the experiments folder directly:

cd experiments julia synth_narmax.jl

It is unnecessary to activate a project environment before running experiments since DrWatson.jl will do this automatically.

Note

We used MATLAB to (1) generate the synthetic signal datasets/verification/realizations and (2) to run Iterative Least Squares estimator datasets/verification/ils_results. The new dataset can be generated by running matlab/run_experiments_NARMAX.m. The new datasets and reference results will appear in matlab/realizations and matlab/ils_results folders respectively. You can manually move those folders into datasets/verification/.

Cached results

Some experiments may take a lot of time to complete. Optionally you can download the dump.zip archive from the GitHub releases section, containing precomputed JLD2 files for the synthetic experiments. By default, the experiments pipeline searches for cached results in the dump folder and doesn't recompute them if the corresponding cache exists. It is possible to reload the precomputed results and analyze them in REPL or Visual Studio Code without running all experiments from scratch.

To force the experiments pipeline to recompute results, you may either remove the corresponding cached results from the dump folder or modify experiments to use the force = true flag in the produce_or_load method:

result, _ = produce_or_load(..., force = true) do params run_experiment(params) end

Project structure

  • datasets/realizations - datasets of synthetic data used for experiments
  • datasets/ils_results - results of ILS estimator
  • dump - (optional), cached results of the experiments in JLD2 files
  • experiments - code/scripts for experiments
  • demonstrator - Jupyter notebooks for the fast exposition of the results.
  • experiments/results - plots
  • src - reused code, project module, model definitions, and utilities

Owner

  • Name: BIASlab
  • Login: biaslab
  • Kind: organization
  • Email: info@biaslab.org
  • Location: Eindhoven, the Netherlands

Bayesian Intelligent Autonomous Systems lab

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels