UQPyL
UQPyL is a python package for uncertainty quantification and parameter optimization. 参数不确定性分析及优化工具包。
Install / Use
/learn @smasky/UQPyLREADME
UQPyL: Uncertainty Quantification Python Lab
<p align="center"><img src="./docs/UQ.svg" width="400"/></p>UQPyL is a Python package for Uncertainty Quantification and Optimization of computational models and their associated problems (e.g., model calibration, resource scheduling, product design). It includes a wide range of methods and algorithms for Design of Experiments, Sensitivity Analysis, Bayesian Inference, Optimization (Single- and Multi-objective). Additionally, Surrogate Models are built-in for solving computationally expensive problems.
👉中文简介
👉中文文档
Changelog
-
2026.03.08: Added a generic interface for connecting hydrological models to UQPyL, enabling seamless integration of various external simulation engines into the UQPyL workflow.
-
2025.12.14: Added the inference module. And results are now saved in NetCDF format, replacing the previous HDF output.
Contents
- Main Features
- Installation
- Useful Links
- Overview of Methods, Algorithms and Problem
- Quick Start
- Call for Contributions
- Contact
✨ Main Features
- Comprehensive Sensitivity Analysis and Optimization: Implements widely used sensitivity analysis methods and optimization algorithms.
- Running Display and Result Save: Enable users to track and save the history and results of their running.
- Advanced Surrogate Modeling: Integrate various surrogate models and an auto-tunning tool to enhance these model performances.
- Rich Application Resources: Provides a suite of benchmark problems and practical case studies, enabling users to get started quickly. (👉Recent Planing: For water science research, we plan to customize the interface to integrate water-related models with UQPyL, enhancing usability and functionality, like SWAT-UQ. So, if you have interest, please contact us to collaborate.).
- Modular and Extensible Architecture: Encourages and facilitates the development of novel methods or algorithms by users, aligning with our commitment to openness and collaboration. (We appreciate and welcome contributions)
⚙️ Installation
Recommended (PyPi or Conda):
pip install -U UQPyL
conda install UQPyL --upgrade
Alternatively:
git clone https://github.com/smasky/UQPyL.git
cd UQPyL
pip install .
🔗 Useful Links
- Website: UQPyL Official Site (TODO: Needs update)
- Source Code: GitHub Repository
- Documentation: ReadTheDocs
- Citation Infos: [UQPyL 2.0](Future update), UQPyL 1.0
🎉 Overview of Methods, Algorithms and Problems
Sensitivity Analysis
| Abbreviation | Full Name | References | | -------|------------|----------| | Sobol' | \ |Sobol(2010), Saltelli (2002)| | DT| Delta Test| Eirola et al. (2008)| | FAST | Fourier Amplitude Sensitivity Test | Cukier et al. (1973), Saltelli et al. (1999)| | RBD-FAST| Random Balance Designs Fourier Amplitude Sensitivity Test | Tarantola et al. (2006), Tissot, Prieur (2012) |MARS-SA| Multivariate Adaptive Regression Splines for Sensibility Analysis |Friedman, (1991)| |Morris| \ |Morris, (2012)| |RSA| Regional Sensitivity Analysis | Hornberger, Spear, (1981), Pianosi (2016) |
💡 Noted: All methods now support for integrating surrogate models. (Please check this tutorial)
🚀 Credits: Special thanks to the SALib project for inspiring parts of the implementation.
Optimization Algorithms
| Abbreviation | Full Name | Optimization Label | References | |--------------|-----------| ----------|---------------| | SCE-UA | Shuffled Complex Evolution| Single | Duan et al. (1992)| | ML-SCE-UA| M&L Shuffled Complex Evolution| Single | Muttil, Liong (2006) | | GA | Genetic Algorithm| Single | Holland (1992)| | CSA | Cooperation Search Algorithm | Single | Feng et al. (2021) | | PSO | Particle Swarm Optimization | Single | Kennedy and Eberhart (1995) | | DE | Differential Evolution | Single | Storn and Price (1997) | | ABC |Artificial Bee Colony | Single | Karaboga (2005) | | ASMO | Adaptive Surrogate Modelling based Optimization | Single, Surrogate | Wang et al.(2014) | | EGO | Efficient Global Optimization | Single, Surrogate | Jones (1998) | | MOEA/D | Multi-objective Evolutionary Algorithm based on Decomposition | Multiple | Zhang, Li (2007)| | NSGA-II| Nondominated Sorting Genetic Algorithm II | Multiple | Deb et al. (2002)| | NSGA-III| Nondominated Sorting Genetic Algorithm III| Multiple | Deb, Jain (2014)| | RVEA | Reference Vector guided Evolutionary Algorithm | Multiple | Cheng et al. (2016)| |MO-ASMO|Multi-Objective Adaptive Surrogate Modelling-based Optimization| Multiple, Surrogate | Gong et al. (2015)|
(The label Surrogate indicates solving computationally expensive optimization problem)
💡 Noted: This modular is still being updated. If you need other algorithms, please contact us.
Surrogate Models
| Abbreviation | Full Name | Features |
|--------------|-----------|----------|
| KRG | Kriging | Support guass, cubic, exp kernel functions |
| GP | Gaussian Process | Support const, rbf, dot, matern, rq kernel functions |
| LR | Linear Regression | Support origin, ridge, lasso loss functions|
| PR | Polynomial Regression | Support origin, ridge, lasso loss functions|
| RBF | Radial Basis Function |Support cubic, guass, linear, mq, tps kernel functions and their corresponding hyper-parameters|
| SVM | Support Vector Machine | Use libsvm as the core library |
| MARS | Multivariate Adaptive Regression Splines | Use Earth package as the core library |
❤️ Here, we provide the Auto-tuning tool to optimally build surrogate models, so you don't need to worry about hyper-parameters.
Single-objective Problems
| Name | Formula | Optimal Solution | Optima | |------|---------|------------------|--------| |Sphere| <img src="./docs/pic/Sphere.svg" /> | ( 0, 0, 0 ... 0 ) | 0.0 | |Schwefel_2_22| <img src="./docs/pic/Schwefel_2_22.svg" /> | ( 0, 0, 0 ... 0 ) | 0.0 | |Schwefel_1_22| <img src="./docs/pic/Schwefel_1_22.svg" /> | ( 0, 0, 0 ... 0 ) | 0.0 | |Schwefel_2_21| <img src="./docs/pic/Schwefel_2_21.svg" /> | ( 0, 0, 0 ... 0 ) | 0.0 | |Schwefel_2_26 | <img src="./docs/pic/Schwefel_2_26.svg" /
Related Skills
node-connect
337.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
337.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.2kCommit, push, and open a PR
