Skip to content

ml-jku/regression-uncertainty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uncertainty Quantification for Regression using Proper Scoring Rules

Alexander Fishkov1*, Kajetan Schweighofer2*, Mykyta Ielanskyi2, Nikita Kotelevskii1, Mohsen Guizani1, Maxim Panov1

$^1$ Department of Machine Learning, MBZUAI, UAE $^2$ ELLIS Unit, LIT AI Lab, Institute for Machine Learning, JKU Linz, Austria
$^*$ Equal contribution

Summary

In this work, we extend recent advances on uncertainty estimation in classification to the regression setting. Under parameteric assumptions, we derive closed-form expressions for regression uncertainty measures and MC estimators thereof. Our broad evaluation on synthetic and real-world regression datasets provides guidance for selecting reliable uncertainty measures for the task at hand. Implementations of all considered uncertainty measures can be found here: uncertainty_measures.py.

Installation

conda env create -f environment.yml

Important are python=3.12, pytorch=2.4 and torchvision=0.19 for reproducability.

Setting up the datasets

For the toy tasks dots and arrow, execute the notebooks notebooks/check_dots.ipynb and notebooks/check_arrows.ipynb. They both contain calls to the generate_and_save_data function of the specific task, which creates the datasets necessary for training and testing. For cityscapes, follow the instructions in datasets/README.md first and then execute datasets/generate_cityscapes.ipynb to preprocess the dataset for training.

Training and Evaluation

To train models, call train.py. Example configs can be seen in run_experiment.sh.

After these runs are finished, one needs to obtain probs on the test dataset for individual ensemble models and save the test targets for convinience. This is done by calling evaluate.py. All configs can be seen in run_evaluation.sh. Similarly for active learning, which is run by calling active_learning.py. The final results for individual experiments are obtained throught the analyze_* and generate_* notebooks.

To play around with the difference between the usual parameterization of the Gaussian likelihood and the natural parametrization, there is the toy sine example in toy_regression.ipynb.

About

Uncertainty Quantification for Regression using Proper Scoring Rules

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published