Documentation | Parameters | Knowledge base | Python interface
FastBN is an open-source C++ library that aims to help practitioners easily and efficiently apply Bayesian Network (BN) models to solve real-world problems. FastBN exploits multi-core CPUs to achieve high efficiency. Key features of FastBN are as follows:
- Wide coverage of different tasks and algorithms related to BNs, including structure learning (PC-stable), parameter learning (maximum likelihood estimation), exact inference (junction tree, variable elimination, brute force), and approximate inference (loopy belief propagation, probabilistic logic sampling, likelihood weighting, self-importance sampling, AIS-BN, EPIS-BN).
- Support classification, through the building blocks of structure learning, parameter learning and inference.
- Support Python interfaces.
- Support BN sample generation, dataset and network format convertor, etc.
Clone this repository and build. Note the --recursive
option which is needed for all the
submodules.
git clone --recursive https://github.com/jjiantong/FastBN.git
cd FastBN
# under the directory of FastBN
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DUSE_MPI=OFF .. && make
Run FastBN through executable.
# under the directory of FastBN/build
./BayesianNetwork
By default settings, FastBN will run the structure learning job using the PC-Stable method with one thread (the sequential version) on 5000 samples generating from the ALARM BN. Command line options can be used to specify the job, method and corresponding parameters, see Parameters.
If you find FastBN useful, please consider citing our papers.
Fast-BNS in IPDPS 2022 (pdf):
@inproceedings{jiang2022fast,
title={Fast Parallel Bayesian Network Structure Learning},
author={Jiang, Jiantong and Wen, Zeyi and Mian, Ajmal},
booktitle={2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS)},
pages={617--627},
year={2022}
}
Fast-BNS-v2 in TPDS (2024):
@article{yang2023parallel,
title={Parallel and Distributed Bayesian Network Structure Learning},
author={Yang, Jian and Jiang, Jiantong and Wen, Zeyi and Mian, Ajmal},
journal={IEEE Transactions on Parallel and Distributed Systems},
year={2024},
publisher={IEEE}
}
Fast-BNI in PPoPP 2023 (pdf):
@inproceedings{jiang2023fast,
title={Fast Parallel Exact Inference on Bayesian Networks},
author={Jiang, Jiantong and Wen, Zeyi and Mansoor, Atif and Mian, Ajmal},
booktitle={Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming},
pages={425--426},
year={2023}
}