This repository provides a simple framework to highlight the benefits of SCAN (see paper) over Multiple Least-Squares (MLS) when applied to multi-hop calibration. In particular, it shows that SCAN minimizes error accumulation over multiple hops in constrast to MLS that suffers from the bias-towards-zero (also known as regression dilution (wiki link) problem and, thus, also error accumulation.
Following files are provided:
MultihopCalibration.py
: Main experiment loop. Runpython MultihopCalibration.py --config_file=config.json
to start a new experimentDataCeator.py
: Generates artificial data used to test the calibration methods. The data resembles measurements from cross-sensitive and noisy low-cost sensor-arrays that measure typical air pollution concentrations.CalibrationStatistics.py
: Calculates different statistics/metrics to benchmark the performance of the calibrationResultPlotter.py
: Plots the results of the calibration, in particular shows an errorbar plot of different metrics over the different hops within the calibration path.MLS.py
: Calculates calibration parameters according to Multiple Least-SquaresSCAN.py
: Calculates calibration parameters according to SCANconfig.json
: Different configuration parameters used to perform the experiment
Implemented with:
- Python 2.7.12
- numpy 1.14.5
- scipy 0.19.1
- matplotlib 2.1.1