Hello everyone!
New release of BAMT is ready.
Dependencies
Issues with `pomegranate` and `pyitlib`
New BAMT version is more stable, because we have get rid of `pomegranate` and (as a package) of `pyitlib`.
It seems, these libraries can't stay more in our dependencies, they just don't work as expected.
Code
Style
We are (almost) constantly monitoring modern code styles. So, to follow trends, from the moment of this release we will be using `black` style .
Code structure
Code analysis reveals us that our code grows and eventually become too complicated, so we have decomposed some modules: `nodes` and `builders`.
Serialization
Integrated serialization makes BAMT's methods too slow (especially `bn.predict`). So, serialization stuff was separated, and now it is used only in `load` and `save` methods.
Import statements
We have returned to our previous networks call:
`import bamt.networks` instead of `from bamt.networks.hybrid_bn import HybridBN`.
Features
Composite networks and evolutionary optimization
Now you can train a composite networks with BAMT thereby `golem` integration. Also now available evolutionary optimization for structural learning of BN.
Additional info is located in [documentation](https://bamt.readthedocs.io/en/latest/models/bayesiannetworks/composite_bn.html).
Filling gaps feature
You can fill gaps in your dataset with corresponding method of network.
Get distributions feature
Now you can extract distribution parameters (either conditional or marginal (in case with nodes without parents)) from node. This feature allows you to analyse how distribution inside a node is changed with different parents' values.
Documentation
New examples in documentation with use cases
Now the documentation includes [examples of the applied use of Bayesian networks](https://bamt.readthedocs.io/en/latest/tutorials/tutorials_gists.html) for gap filling tasks and generating synthetic training data.
We highly appreciate our users and want to thank you for your contributions (even if they are in the form of issues), so we have taken your issues and fixed them to make our library more comfortable and userfriendly. It seems that our documentation is outdated, so we updated it!