Tags give the ability to mark specific points in history as being important
-
2.2.1
40993102 · ·## Changelog for 2.2.1 - aGrUM - Fixed bugs in `gum::PDAG`(thanks to Louis Derumaux). - Added `gum::Set::popFirst()` - pyAgrum - updated some requirements - Fixed bugs in `pyagrum.PDAG`(thanks to Louis Derumaux).
-
2.2.0
cf1283f7 · ·## Changelog for 2.2.0 - aGrUM - (internal) Improved cmake files and act - Enhanced `gum::BNLearner::copyState` to more correctly handle constraints. - Enhanced `gum::BNLearner`'s EM algorithm to enable user-based initialization. - Enhanced `gum::BNLearner`'s EM algorithm to provide more flexible stopping criteria. - Added first version of `CITATION.cff` file. - pyAgrum - Improved documentations coverage - Update wheels - Improved API for `pyagrum.lib.DiscreteTypeProcessor` - Used quantile_method='averaged_inverted_cdf' when quantile method is used for discretization. (sklearn >=1.7 needed). - New (experimental) option for building pyAgrum :--no-gil. - New target for sphinx : markdown for website (new target `site` for sphinx Makefile). - Enhanced `pyagrum.BNLearner`'s EM algorithm to enable user-based initialization. - Enhanced `pyagrum.BNLearner`'s EM algorithm to provide more flexible stopping criteria. - Improved documentaiton. Especially BNLearner and EM's documentation and tutorial.
-
2.1.1
d15a377b · ·## Changelog for 2.1.1 - pyAgrum - documentation (improved coverage and BN input/ouput mainly) - now using `ruff` for formatting (and linting) python files (also in `act guideline`)
-
2.1.0
bb927861 · ·## Changelog for 2.1.0 - aGrUM - Added a new constructor for `gum::Tensor` with a list of variables to automatically add. - Enhanced BIFXML reader/writer to support fast syntax (both for Bayesian Network and for Influence Diagram). - Added deterministic and uniform tensor creation methods in `Tensor` class. - Added `BayesNet.contextualize` method for structurally handling observations and interventions. - Improved code for `BayesNet::operator==`. - `gum::influenceDiagramGenerator` now creates `gum::RangeVariable` instead of `gum::LabelizedVariable`. - Improved readability of range parsing in `allDiscreteVariables_tpl.h`. - Fixed a bug in `gum::Instantiation::contains(std::string)`. - Added `gum::trim_copy` method. - pyAgrum - De-modularized pyagrum to resolve weird bugs. - Enhanced BIFXML reader/writer to support fast syntax (both for Bayesian Network and for Influence Diagram). - Added a new constructor for `pyAgrum.Tensor` with a list of variables to automatically add. - Added deterministic and uniform tensor creation methods in `Tensor` class. - Added `BayesNet.contextualize` method for structurally handling observations and interventions. - `gum::influenceDiagramGenerator` now creates `gum::RangeVariable` instead of `gum::LabelizedVariable`. - Added `pyagrum.lib.notebook.inspectBN` function to visualize a (small) Bayesian Network and its CPTs in a notebook. - Simplified some pyagrum's error messages. - Removed useless methods `newFactory`. - Fixed typos in RTD's documentation and added `pyAgrum.mutilateBN` in the documentation.
-
-
2.0.0
2c47d77a · ·# aGrUM Changelog ## Changelog for 2.0.0 This major update brings several important changes that align with our goals of improving usability, compliance, and consistency. Below are the three main motivations behind this significant upgrade: #### 1. License Change : MIT+LGPLV3 The first major change in version 2.0.0 is the update to our software license. This change ensures better alignment with modern open-source standards and provides clearer guidelines for usage, distribution, and modification ([see here for details](https://agrum.gitlab.io/articles/dual-licenses-lgplv3mit.html)). #### 2. Package Name Update to Follow PEP8 To adhere to Python's PEP8 naming conventions, we have renamed the package from `pyAgrum` to `pyagrum`. We are aware that this change may cause some inconvenience, but it is necessary to ensure consistency with Python's style guidelines and improve the overall user experience. The transition to version 2.0.0 is the right time to implement this change, as it allows us to make a clean break and set a solid foundation for future development. #### 3. Class Renaming: Potential to Tensor In an effort to make the library more intuitive and reflective of its functionality, we have renamed the `Potential` class to `Tensor`. This change better represents the mathematical nature of the class and aligns with common terminology in the field ([see here for details](https://agrum.gitlab.io/articles/tensors-in-pyagrum.html)). #### 4. Modular Code Structure We have reworked the internal structure of the code to make it more modular. This redesign allows for easier extensibility and maintenance in the long term. By breaking down the code into more independent and reusable components, we aim to facilitate future enhancements and possible contributions from the community. ----- #### Detailed Changelog - aGrUM - Split library into `BASE`/`BN`/`CN`/`FMDP`/`ID`/`MRF` sub-libraries . - Enhanced swig files (thanks to Julien Schueller!). - Improved compilation time for the whole library. - Removed obsolete deprecated, experimental code. - Moved `gum::Potential` to `gum::Tensor`. - used functions of `std::filesystem`. - Removed uses of `mkstemp`/`opendir`/`dup`/etc. and inclusions of `dirent.h` and `unistd.h`. - Minor typos in aGrUM's testsuite. - pyAgrum - Split module into `pyAgrum.base`/`bn`/`cn`/`id`/`mrf` sub-modules. - Changed name of pyAgrum's package: from `pyAgrum` to `pyAgrum`. - Alignd wheel naming with binary distribution format. - Renamed `gum.lib.Discretizer` to `gum.lib.DiscreteTypeProcessor`. - Fixed a bug for `pyAgrum.DiscreteTypeProcessor` with a boolean variable in the database (thanks to Yann Le Biannic). - Fixed a bug then calling `gum.BNLearner.learnEssentialGraph` with a score-based algorithm (thanks to Yann Le Biannic). - *pyAgrum-izing* types in `swig`-generated `cpp` files. - Removed obsolete deprecated, experimental codes. - Moved `pyAgrum.Potential` to `pyAgrum.Tensor`. - Added glossary in readthedoc site. - Improved notebooks, docstrings and sphinx documentations. - Stable abi for wheel generation. Added possibility to turn off stable abi use. - CIs for apple silicon. - Removed old deprecation. - Added new experimental pyAgrum's model : Miture of Bayesian Networks (thanks to Rodrique Tavernier). - Licences are now included in the wheels.
-
1.17.2
e26d7c4b · ·* pyAgrum * Fixed some bugs in `pyAgrum.lib.shapley` (thanks Stefano Mariani !). * Changed last MN->MRF (`pyAgrum.{loadMRF|saveMRF|availableMRFExts}`). * Improved pickling of `pyAgrum.skbn.BNClassifier`.
-
1.17.1
814ba584 · ·* aGrUM * Fixed extra semicolon. * pyAgrum * Fixed some pyAgrum types in generated files. * Added check for pandas in tests. * Renamed files in module `pyAgrum.clg`. * Fixed METADATA for pypi.
-
1.17.0
4c6e93b4 · ·* pyAgrum * Added support for `python 3.13`. * Added generator `pyAgrum.Instantiation.loopIn()` to iterate on an `pyAgrum.Instantiation`. * Significantly accelerated `pyAgrum.Potential.fillFromDistribution()`. * Major acceleration of `pyAgrum.clg.ForwardSampling.make_sample()`.
-
1.16.0
1c53d45e · ·* aGrUM * Added 3 behaviors for generating sampling from `gum::DiscretizedVariable` in `gum::BNDatabaseGenerator` : `INTERVAL`/`MEDIAN`/`RANDOM`. The default was `INTERVAL` and is now `RANDOM`. * Added timeout for `gum::BNDatabaseGenerator` to prevent slowish (maybe infinite) rejection sampling. * Added two new constraints for learning :`gum::learning::NoParentNode`,`gum::learning::NoChildNode`. * Added these new constraints in `gum::BNLearner` : `addNoParentNode(nodeid)` and `addNoChildrenNode(nodeid)`. * (internal) Improved `act`'s scripts. * pyAgrum * Dropped support of python 3.9 (following [NEP29](https://numpy.ingg/nings/nep-0029-deprecation_policy.html)). * Added 3 behaviors for generating sampling from `pyAgrum.DiscretizedVariable` in `pyAgrum.BNDatabaseGenerator` : `INTERVAL`/`MEDIAN`/`RANDOM`. The default was `INTERVAL` and is now `RANDOM`. * Added timeout for `pyAgrum.BNDatabaseGenerator` to prevent slowish (maybe infinite) rejection sampling. * Added two new constraints `pyAgrum.BNLearner.addNoParentNode()` and `pyAgrum.BNLearner.addNoChildrenNode()`. * (internal) Standardized licence in python files * Added new `pyAgrum.causal.CausalEffectsEstimation` (thanks to Thierry Rioual). * `pyAgrum.causal.BNClassfier`can now be pickled (thanks to Valentin Vassilev). * Added module `pyAgrum.lib.shapley` (included in `pyAgrum.lib.explain`) to allow the use of `ShapValues` not only from notebooks (thanks to Stefano Mariani). * Added a parameter `filename` to `pyAgrum.lib.shapley.ShapValues`'s methods for saving the figure instead of showing it (thanks to Stefano Mariani).
-
1.15.1
e0736868 · ·* aGrUM * Added `gum::Potential<GUM_SCALAR>::memoryFootprint` and `gum::IBayesNet::memoryFootprint` (thanks to Benjamin Datko). * Fixed a bug when subscripting `gum::DiscretizedVariable` with the (last) interval (thanks to Gaspard Ducamp). * Removed gcc warnings (psabi, false positive uninitialized). * pyAgrum * Added `pyAgrum.Potential.memoryFootprint` and `pyAgrum.BayesNet.memoryFootprint` (thanks to Benjamin Datko). * Fixed a bug when subscripting `gum::DiscretizedVariable` with the (last) interval (thanks to Gaspard Ducamp). * Fixed a bug in `pyAgrum.skbn.BNDiscretizer` for `NoDiscretization` method with given `paramDiscretization`. * Moved function `pyAgrum.lib.export.toFast` to method `pyAgrum.{BayesNet|InfluenceDiagram|MRF}.toFast()`. * Moved `pyAgrum.skbn.BNDiscretizer` to `pyAgrum.lib.discretizer`. * Worked on documentation for CTBN * Fixed `fontcolor` configuration for causal model.
-
1.15.0
52e002f0 · ·We continue to add (full python) experimental models. In 1.15, we introduce the CTBN model (Continuous Time Bayesian Network) featuring, as usual, modelization and representation, inference (exact and sampling) and a learned algorithm. * aGrUM * Added `gum::NodeId gum::EssentialGraph::idFromName(const std::string& name)` and `const std::string& gum::EssentialGraph::nameFromId(gum::NodeId node)`. * pyAgrum * Added `pyAgrum.EssentialGraph.idFromName(str)->int` and `pyAgrum.EssentialGraph.nameFromId(int)->str` * Improved documentation of `pyAgrum.lib.explain` * Better `pyAgrum.clg.CLG.toDot()` and `pyAgrum.clg.CLG._repr_html()`. * New model Continuous Time Bayesian Network `pyAgrum.ctbn`. * Formatted and adjustments in `pyAgrum.ctbn`. * Updated documentations for python experimental models notebooks. * Updated thumbnails for python experimental models notebooks. * Added serialization (pickle) for CLG and CTBN (consistent with other models in pyAgrum). * Improved `pyAgrum.lib.utils.{apply_}dot_layout` * Added `pyAgrum.lib.utils.async_html2image` for exported HTML as png or pdf (notably for `pyAgrum.lib.notebook.getSideBySide` and `pyAgrum.lib.notebook.getPotential`).
-
1.14.1
f3fbaaa3 · ·* aGrUM * Fixing compilation errors for `clang18` (thanks to @yurivict). * pyAgrum * Fixing python version for `readthedocs`.
-
1.14.0
0fbb07b5 · ·* aGrUM * `gum::Potential::marg{Xyz}{In|Out}` are renamed `gum::Potental::{xyz}{In|Out}` to cut down on some verbosity. (for instance : `p.margSumOut` becomes `p.sumOut`) * Better error messages for `gum::BNLearner<GUM_DATA>` * pyAgrum * Dropping support of python 3.8 (following [NEP29](https://numpy.org/neps/nep-0029-deprecation_policy.html)). * Fixing some memory leaks (in special cases) found by Christophe Gonzales * new `pyAgrum.lib.explain.generalizedMarkovBlanket{Names}` and documentation. * `pyAgrum.Potential.marg{Xyz}{In|Out}` are renamed `pyAgrum.Potental.{xyz}{In|Out}` to cut down on some verbosity. (for instance : `p.margSumOut` becomes `p.sumOut`) * Better error messages for `pyAgrum.BNLearner` * Adding new python's experimental model : Conditional Linear Gaussian (`pyAgrum.clg.*`) : model, learning and inference.
-
1.13.2
3d8273e3 · ·* aGrUM * Better (compact) format for numerical labels. * Better uniformly distributed random discrete distribution. * pyAgrum * Better (compact) format for numerical labels. * Better uniformly distributed random discrete distribution. * Continue to implement some automatic `pyAgrum.Potential` filling tools with `pyAgrum.Potential.fillFromExpression`. * Working on better plots for probability+utility * Speeding up `gum.BayesNet.addArcs()` with *jit* memory allocation * Slight adjustments to histogram display. * Fixing documentation of `gum.BNLearner.mutualInformation`. * Fixing (deprecated) arguments in `pyAgrum.skbn.BNClassifier`'s methods.
-
1.13.1
bb6f0235 · ·This release is mainly about documentation. * pyAgrum * Fixing last references to LIP6's notebooks instead of rtd's notebooks (thanks to Benjamin Datko). * Adding 'Book of Why's notebooks to readthedoc's documentation. * Updating Notebooks and thumbnails. * Improving documentation coverage for pyAgrum class methods (from 86.19% to 87.05%) * `gum.BNLearner.learnEssentialGraph` for all learning algorithm. * Better wrapping of `pyAgrum.BNLearner.setPossibleEdges()`.
-
1.13.0
dc14f2f1 · ·* Internal * New servers for (linux and windows) CI ! * aGrUM * Fast syntax for empirical `gum::DiscretizedVariable`: name suffixed by '+'. * Reorganizing a bit `gum::DiscreteVariable`'s hierarchy. * Working on quasi-continuous (numerical discrete variable with large domain size) : * Logical operators (`&`,`|`, `~`) to combine evidence (monodimensionnal `gum::Potential` not forced to sum to 1). * New `gum::Potential` and `gum::BayesNet` methods to generate numerical evidence : `evEq`, `evIn`, `evLt`, `evGt`. * Fast syntax now accepts any type as default (and not only the size of the domain). * pyAgrum * Fixing a bug in `pyAgrum.lib.bn2scores. * Fast syntax for empirical `pyAgrum.DiscretizedVariable`: name suffixed by '+'. * Reorganizing `pyAgrum.lib._colors.py` and `pyAgrum.lib.utils.py`. * Changing a default for `pyAgrum.Instantiation.todict`. * Improving (a lot) histograms for `pyAgrum.DiscretizedVariable`. * Working on quasi-continuous (numerical discrete variable with large domain size) : * Logical operators (`&`,`|`, `~`) to combine evidence (monodimensionnal `pyAgrum.Potential` not forced to sum to 1). * New `pyAgrum.Potential` and `pyAgrum.BayesNet` methods to generate numerical evidence : `evEq`, `evIn`, `evLt`, `evGt`. * Fast syntax now accepts any type as default (and not only the size of the domain). * `pyAgrum.Potential` accepted as evidence for all inference. * Long-awaited `pyAgrum.Potential.fillFrom{Function|Distribution}`. * Adding `pyAgrum.config.{push|pop}`. * Removing obsolete code for `python2.7`. * Removing some oldest deprecationWarning. * Adding '__iter__' for graphs, graphical models, variable and potentials.
-
1.12.1
82656391 · ·* aGrUM * Adding a new job during CI for sphinx documentation. * Fixing a typo in `gum::MeeRules::propagate(s)`. * pyAgrum * Fixing a typo in `pyAgrum.MeekRules.propagate(s)`. * Adding new rules for 'python typification' of generated files. * Fixing and updating documentations and notebooks.
-
1.12.0
d93aba1e · ·* aGrUM * Adding a new class `gum::MeekRules` to complete a learned PDAG to CPADG or BN. * Preventing 'infinities' in the definition of numerical discrete variable. * Adding a new constructor for `gum::PDAG` from`gum::MixedGraph`. * Better (stricter) `operator==` between `gum::DiscreteVariable`. * Adding a new static constructor `gum::{Undi|Di}Graph::completeGraph(int n)`. * Adding `closestIndex()` and `closestLabel()` methods for all numerical `gum::DiscreteVariable`. * Fixing an exception raised in inferences due to the removal of uninformative potentials containing only barren variables * new syntax for `fastVariable` : `[a:b:n]` = `gum.Discretiezd` with n intervalls from a to b. * pyAgrum * Pickle for graphs and graphicals models ! * Preventing 'infinities' in the definition of numerical discrete variable. * Adding a new class `pyAgrum.MeekRules` to complete a learned PDAG to CPADG or BN. * Better (stricter) `__eq__` and `__ne_`_ between `pyAgrum.DiscreteVariable`. * Adding a new constructor for `pyAgrum.PDAG` from`pyAgrum.MixedGraph`. * Adding a new `expert` discretization method to `pyAgrum.skbn.BNDiscretizer` (thanks to Ahmed Mabrouk). * `pyAgrum.skbn.BNDiscretizer` can now take csv filename for input. * Adding `pyAgrum.fastGraph` to create `pyAgrum.{Di|Undi|Mixed}Graph`. * Dataframes can now come from `pandas` or `polars` (thanks to Mads Linksou). * Adding a `compact` mode for histogram for discretized variable controlled by `histogram_mode` `histogram_epsilon` in `gum.config` (thanks to Gaspard Ducamp). * Adding a new static constructor `pyAgrum.{Undi|Di}Graph::completeGraph(int n)`. * Adding subscripting to graphical models : `g[name]` gives now a direct access to the `pyAgrum.DiscreteVariable` by its name. * New syntax for `pyAgrum.fast{Var|BN|ID|MRF}` : `[a:b:n]` = `pyAgrum.DiscretizedVariable` with n intervalls from a to b. * Adding `closestIndex()` and `closestLabel()` methods for all numerical `pyAgrum.DiscreteVariable`. * Adding `g.adjacencyMatrix()` for all graphs and graphical models (thanks to Kenneth Lee). * Adding new `bgcolor` parameter (None by default) for `showROC/PR` in `pyAgrum.lib.bn2roc` and `pyAgrum.skbn` (thanks to Clara Charon). * Adding optional `dialect` parameter to `pyAgrum.lib.bn2roc.computeScores`. * new syntax for `fastVariable` : `[a:b:n]` = `pyAgrum.Discretiezd` with n intervalls from a to b.
-
1.11.0
96134fc4 · ·* Internal * Removing some warnings in CMakeLists.txt * Refactoring CI, cleaning wheelhouse * aGrUM * Adding `gum::LazyPropagation::mpe{Log2Posterior}` to compute the Most Probable Explanation with some evidence. * Improving MIIC algorithm and application of Meek Rules in ordre to to better solve (partially) oriented cycle problems. * Fixing a bug in `gum::BNLearner` : EM parameter estimation bug due to a cache used in record counters. * Fixing a bug in `gum::GibbsSampling` : some evidence may not be taken into account (thanks to Micromix@discord). * `gum::PDAG` must accept partially directed cycle (thanks to Kenneth Lee). * pyAgrum * Updating and adding 3.12 in metadatas. * Adding `pyAgrum.LazyPropagation.mpe{Log2Posterior}` to compute the Most Probable Explanation with some evidence. * Removing reference to `sys.log` and to `setuptools`. * Removing legacy setuptools related files. * Fixing a bug in `pyAgrum.BNLearner` : EM parameter estimation bug due to a cache used in record counters. * Fixing a bug in `pyAgrum.GibbsSampling` : some evidence may not be taken into account (thanks to Micromix@discord). * Fixing a bug in frontdoor detection in a causal model with multiple connected components. * Fixing some regexp expressions. * `pyAgrum.PDAG` must accept partially directed cycle (thanks to Kenneth Lee).