## 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, ...).

### Imprecise probability models and methods

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

LGVM | Matlab | yes | yes | Signal filtering | Vacuous-Gaussian mixture | yes |

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 | |

Evidential regression | Matlab | yes | yes | Non-parametric regression | Transferable Belief Model | yes |

Evidential K-NN | Matlab | yes | yes | Classification | Transferable Belief Model | yes |

Evidential clustering | Matlab | yes | yes | Clustering | Transferable Belief Model | yes |

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

Evidential EM algorithm | Matlab | yes | yes | Learning | Transferable Belief Model | yes |

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

CBDO | Matlab | yes | yes | Optimisation | Clouds | 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 |

Pulcinella | CLisp | yes | yes | Propagation in graphical models | Valuation systems | 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 |

### Third-party implementation tools

SOFTWARE | 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 |

TBM-related | Matlab | yes | yes | Tools for belief functions | Transferable Belief Model | no |

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

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

#### Description and references

**LGVM**: This software solves Hidden Markov Models when both likelihood functions and prior distributions are not well known and when this imprecision in knowledge can be modelled by gaussian vacuous mixtures (this model allowing for easy and efficient computations). It consitutes a special instance of a more general proposition consisting of using generic lower previsions to solve Hidden Markov Models.*References:***A. Benavoli M. Zaffalon E. Miranda**"Reliable hidden Markov model filtering through coherent lower previsions" Int. Conf. Information Fusion 2009**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.**Evidential regression**: This Matlab routines performs non-parametric evidential regression. It is based on a k-nn algorithm previously proposed by T.Denoeux. Currently it only deals with precise values in the inputs and outputs.*References:***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.**Evidential K-NN**: These different Matlab routines encodes a case-based classifier using evidence theory. It adapts the classical K-Nearest Neighbours algorithm and is based on both discounting operations and conjunctive merging. Complementary routines allows the use of imprecisely specified labels and of discounting value optimisation procedures.*References:***T. Denoeux**. "A k-nearest neighbor classification rule based on Dempster-Shafer theory." IEEE Transactions on Systems Man and Cybernetics. 25(05).804-813. 1995.**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.**T. Denoeux and L. M. Zouhal.**Handling possibilistic labels in pattern classification using evidential reasoning. Fuzzy Sets and Systems. 122(3).47-62. 2001.**Evidential clustering**: These Matlab routines implements clustering methods using the belief function framework. It extends some other known methods such as partitioning based on proximity or fuzzy c-means methods.*References:***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.**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:***Evidential EM algorithm**: These Matlab routines implements an extension of the E2M algorithm using the belief function framework.*References:***T. Denoeux.**Maximum likelihood estimation from Uncertain Data in the Belief Function Framework. IEEE Transactions on Knowledge and Data Engineering. To appear.**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:***CBDO**: This matlab toolbox uses clouds as particular imprecise probabilistic representations and convex optimisation to achieve robust design optimisation for high-dimensional problems under uncertainty. It uses so-called potential-based clouds that are mainly a collection of nested and convex confidence regions in the multi-dimensional space built from one-dimensional information.*References:***M. Fuchs and A. Neumaier.**"Potential based clouds in robust design optimization." Journal of Statistical Theory and Practice. Special Issue on Imprecision. 3(1). 225-238. 2009.**A. Neumaier.**"Clouds fuzzy sets and probability intervals." Reliable Computing 10 (2004). 249-272.**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.**Pulcinella**: Pulcinella is a environment coded in Common Lisp. It allows to create and evaluate valuation systems introduced by Shenoy. One of the interest of valuation systems is that they encompass many uncertainty theories at once. Belief functions and all its particular cases constitute one particular instance of valuation system.*References:***G. Shafer and P. Shenoy.**"Axioms for probability and belief-function propagation" Classic Works of the Dempster-Shafer Theory of Belief Functions. eds R. Yager and L. Liu. Springer. 2008**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:*

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).