## Software tools for imprecise probabilities

This page provides and gathers information about software tools related to imprecise probability theories (i.e. lower previsions, credal nets, Dempster-Shafer theory, possibility theory, ...).

### Research groups and Researchers

NAME | LANGUAGE | OPEN | FREE | PURPOSE | MAIN KEYWORD | DOC |

IPG | Various | yes | yes | Varied | Bayesian approaches | yes |

Denoeux | Matlab/R | yes | yes | Data mining | Belief functions | yes |

### Third-party implementation tools

NAME | LANGUAGE | OPEN | FREE | PURPOSE | MAIN KEYWORD | DOC |

JNCC2 | Java | yes | yes | Classification | Credal Network | yes |

GL2U | Python/C++ | yes | yes | Classification | Credal Network | yes |

RAMAS Risk Calc | N.A. | no | no | Risk analysis | Probabilistic/fuzzy arithmetic | yes |

DecideIT | N.A. | no | acad | Multi-criteria decision aid | yes | |

Improb | Python/C++ | yes | yes | General library | Lower previsions | yes |

ELVIRA | Java | yes | yes | Decision aid | Graphical models | yes |

linLIR | R | yes | yes | Linear regression | Liklihood Approach | yes |

imprProbEst | R | yes | yes | Model estimation | Statistical learning | yes |

DSI Toolbox | Matlab | yes | yes | Uncertainty propagation | Belief functions | yes |

Weka-IP | Java | yes | yes | Classification with GUI | Credal classification | yes |

IPP Toolbox | R | yes | yes | Uncertainty propagation | Belief functions | yes |

Belief Toolbox | Matlab | yes | yes | Belief manipulation | DST and DSmT | yes |

RefereeToolbox | Java | yes | yes | Belief merging | Belief functions | yes |

EvCombR | R | yes | yes | Belief merging | Belief functions and imprecise probabilities | yes |

HYRISK | R | yes | yes | Uncertainty propagation | Hybrid method | yes |

### Third-party implementation tools

NAME | LANGUAGE | OPEN | FREE | PURPOSE | MAIN KEYWORD | DOC |

LRS | C | yes | yes | Vertex enumeration | Polyhedron | yes |

cdd/cdd+ | C/C++ | yes | yes | Vertex enumeration | Polyhedron | no |

GSL | C/C++ | yes | yes | Mathematical tools/routines | General tools | no |

CVXOPT | Python | yes | yes | Convex optimisation | Optimisation | no |

lpsolve | C | yes | yes | Mixed Integer Linear Prog. | Optimisation | no |

Jaulin | C++/Scilab | yes | yes | Interval Analysis | yes | |

Kappalab | R | yes | yes | Set-function handling | Capacities | yes |

#### Description and references

**IPG**: The IDSIA imprecise probability group makes various software available. Softwares are written in a variety of languages and mostly sove problems related to graphical models (Bayesian networks and extensions) or statistical inference (e.g. comparisons of classifier performances). Some softwares are open while others are only there for demonstration.*References:***M. Scanagatta C.P. de Campos G. Corani M. Zaffalon**"Learning Bayesian networks with thousands of variables" NIPS 2015. Advances in Neural Information Processing Systems**G. Corani A. Benavoli**"A Bayesian approach for comparing cross-validated algorithms on multiple data sets" Machine Learning 100. pp. 285Ð304. 2015**JNCC2**: This software encodes the extension of the Naive Bayes Classifier into credal networks: that is bayesian networks where conditional probabilities can be imprecisely specified. Thanks to the use of imprecise probabilities and of imprecise probabilistic decision criterium (i.e. interval dominance) the Naive credal classifier returns sets of most plausible classes rather than single classes on instances when not enough information is available to return a single class.*References:***G.Corani M. Zaffalon**"Learning Reliable Classifiers From Small or Incomplete Data Sets: The Naive Credal Classifier 2" Journal of Machine Learning Research. 9. 581--621. 2008.**GL2U**: This package encodes the Generalized Loopy 2U algorithm. It allows to make inferences with very general credal networks (i.e. non-binary and non-separately specified). It combines the local specifications and binarization processes with the loopy 2U algorithm to achieve inference. Several binarization procedures are available within it to make it more flexible and faster than previous versions.*References:***A. Antonucci M. Zaffalon Y. Sun and C.P. de Campos**"Generalized loopy 2U: A new algorithm for approximate inference credal networks" in: M. Jaeger T.D. Nielsen (Eds.) Proceedings of the Fourth European Workshop on Probabilistic Graphical Models. Hirtshals (Denmark). 2008. pp. 17--24.**RAMAS Risk Calc**: RAMAS allows to propagate uncertainty through functions that can be expressed as combinations of arithmetic operations or monotonic functions (e.g. log. exp). It allows to model uncertainty and incomplete probabilistic knowledge either with p-boxes or fuzzy sets or classical probabilities. Uncertainty propagation is achieved either by corresponding arithmetic (fuzzy or probabilistic) or by Monte-Carlo sampling.*References:***S. Ferson**"2002 RAMAS Risk Calc 4.0 Software: Risk Assessment with Uncertain Numbers." Lewis Publishers. Boca Raton. Florida.**DecideIT**: DecideIT encompasses several multi-criteria decision and risk analysis methods using imprecise models. The software is free when used for academic purposes.*References:***M. Danielson L. Ekenberg J. Johansson and A. Larsson**"The DecideIT Decision Tool". ISIPTA 2003: 204-217.**LRS**: LRS is a C library that contains different functions related to the use of polytopes such as the computation of Voronoi vertices or the computation of a polytope volume or the projection on a subspace etc.*References:***Improb**: This Python library provides different tools to manipulate lower previsions and special cases of lower previsions. This includes: computing lower and upper expectations of conditional lower previsions: estimating extreme points : transformations between representations (including Mobius transform). It also includes computations on decision trees.*References:***ELVIRA**: ELVIRA is a tool that allows to encode bayesian networks or influence diagrams with discrete variables. It comes with a GUI and has methods both for inference or learning. ELVIRA accepts interval probabilities in conditional tables.*References:***linLIR**: This package implements the methodology of Likelihood-based Imprecise Regression (LIR) for the case of linear regression with interval data.*References:***M. Cattaneo and A. Wiencierz**"Likelihood-based Imprecise Regression." International journal of Approximate Reasoning 53 (2012). pp. 1137-1154.**Jaulin**: This webpage links to the different software/code developed by Luc Jaulin and other members of his team. It includes several small programs allowing to solve various interval analysis problems such as set inversion or parameters estimation. The source code of some of them are freely available and downloadable while source codes of others have to be asked. Some programs include some confidence region estimations. Used language is a mix between french and english.*References:***Jaulin L. M. Kieffer O. Didrit and E. Walter**"Applied Interval Analysis with Examples in Parameter and State Estimation Robust Control and Robotics." 2001 Springer-Verlag (also in Russian)**Kappalab**: Kappalab is an R package that includes many routines to handle set functions such as games or capacities. It can be used to compute non-additive integrals (Sugeno or Choquet) Shapley value or Mobius transform. It is mainly oriented towards Multi-criteria decision making and game theoretic calculus but some routines can certainly be used to compute lower/upper expectations or to manipulate belief functions.*References:***Denneberg**"Non-additive measure and integral: basic concepts and their role for applications" M. Grabisch T. Murofushi and M. Sugeno Eds. Fuzzy Measures and Integrals: Theory and Applications. Physica-Verlag. pages 42-69.**imprProbEst**: ImprProbEst is a statistical learning method used to identify a model. It is based on a minimum distance operator and computes an upper coherent prevision given a set of independently and identically distributed data.*References:***R. Hable**"Minimum distance estimation in imprecise probability models" Journal of Statistical Planning and Inference 40 (2010). pp. 461-479.**DSI Toolbox**: DSI (for Dempster Shafer with Intervals) is a toolbox containing many methods related to the handling of belief functions in the setting of the general Dempster-Shafer theory. This includes dependence modeling through copulas: sensitivity analysis: aggregation functions (Dempster rule and the like) : MC sampling and estimation of classical stastitical values (e.g. mean).*References:***P. Limbourg R. Savic J. Petersen and H.-D. Kochs**"Fault Tree Analysis in an Early Design Stage using the Dempster-Shafer Theory of Evidence European Safety and Reliability Conference" ESREL 2007. pp. 713-722.**Weka-IP**: weka-IP is an extension of Weka for credal classification written in Java and released under GPU Licence. In the current version it contains four credal classifiers and a set of metrics specifically designed for the evaluation of credal classification. The full integration of these models in the GUI of Weka makes their use very simple.*References:***IPP Toolbox**: Same toolbox as the Matlab one (older version) in R. No longer maintained.*References:***RefereeToolbox**: RefereeToolbox is a java package implementing combination operators for fusing evidences. RefereeToolbox is based on an interpretation of the fusion rules by means of Referee Functions. This approach implies a dissociation between the definition of the combination and its actual implementation (a common feature to all referee-based combinations).*References:***F. Dambreville**. "Modeling evidence fusion rules by means of referee functions". Information Fusion 2009.**EvCombR**: EvCombR is an R package implementing different uncertainty representations. It includes combination rules of belief functions and imprecise probabilities.*References:***Denoeux**: Thierry Denoeux tools derived from some of his work. Most works concern learning from data (in unsupervised and supervised settings) with evidential methods. Most codes are in Matlab and some more recent librairies are in R*References:***L. M. Zouhal and T. Denoeux.**An evidence-theoretic k-NN rule with parameter optimization. IEEE Transactions on Systems Man and Cybernetics C. 28(2).263-271.1998.**S. Petit-Renaud and T. Denoeux**. "Nonparametric regression analysis of uncertain and imprecise data using belief Functions". International Journal of Approximate Reasoning. Vol 35. No 1. 1-28. 2004.**M.-H. Masson and T. Denoeux.**ECM: An evidential version of the fuzzy c-means algorithm. Pattern Recognition. Vol 41. pages 1384Ð 1397. 2008.**T. Denoeux and M. Masson.**EVCLUS: Evidential Clustering of Proximity Data. IEEE Transactions on Systems Man and Cybernetics B. Vol 34. Issue 1. 95-109. 2004.**T. Denoeux.**Maximum likelihood estimation from Uncertain Data in the Belief Function Framework. IEEE Transactions on Knowledge and Data Engineering.**HYRISK**: Methods for addressing uncertainty in risk assessments using hybrid representations of uncertainty (probability distributions and fuzzy numbers and intervals and probability distributions with imprecise parameters) based on the developments derived from the close collaboration between BRGM (french geological survey) and IRIT (Toulouse Computer Science Laboratory). The uncertainty propagation procedure combines random sampling using Monte Carlo method with fuzzy interval analysis. The sensitivity analysis is based on the pinching method of Ferson and Tucker (2006).*References:***C. Baudrit and D. Dubois and D. Guyonnet**Joint propagation and exploitation of probabilistic and possibilistic information in risk assessment. IEEE transactions on fuzzy systems. 14. 593-608. 2006.**S. Ferson and W.T. Tucker.**Sensitivity analysis using probability bounding. Reliability Engineering and System Safety. 91. 1435-1442. 2006.

This section is maintained by Sebastien Destercke. If you want some information to be added (or corrected/deleted) on this page, please send him a mail (sdestercke_at_gmail_dot_com).