# Pomegranate: fast and flexible probabilistic modeling in python

arXiv: https://arxiv.org/abs/1711.00137 · HTML: https://mlsanity.com/paper/1711.00137/

## Key facts

- Cited by 17 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 31 Oct 2017.

## Built on by (most cited first, 17 of 17)

- [pgmpy: A Python Toolkit for Bayesian Networks](https://mlsanity.com/paper/2304.08639/) (2023)
- [Non-Imaging Medical Data Synthesis for Trustworthy AI: A Comprehensive Survey](https://mlsanity.com/paper/2209.09239/) (2022)
- [Bayesian Social Deduction with Graph-Informed Language Models](https://mlsanity.com/paper/2506.17788/) (2025)
- [PGMax: Factor Graphs for Discrete Probabilistic Graphical Models and Loopy Belief Propagation in JAX](https://mlsanity.com/paper/2202.04110/) (2022)
- [Unsupervised Learning of Hierarchical Conversation Structure](https://mlsanity.com/paper/2205.12244/) (2022)
- [Moment Estimation for Nonparametric Mixture Models Through Implicit Tensor Decomposition](https://mlsanity.com/paper/2210.14386/) (2022)
- [Robust vertebra identification using simultaneous node and edge predicting Graph Neural Networks](https://mlsanity.com/paper/2308.02509/) (2023)
- [VQNet 2.0: A New Generation Machine Learning Framework that Unifies Classical and Quantum](https://mlsanity.com/paper/2301.03251/) (2023)
- [Improving grapheme-to-phoneme conversion by learning pronunciations from speech recordings](https://mlsanity.com/paper/2307.16643/) (2023)
- [Agent-aware State Estimation in Autonomous Vehicles](https://mlsanity.com/paper/2108.00366/) (2021)
- [Inferring school district learning modalities during the COVID-19 pandemic with a hidden Markov model](https://mlsanity.com/paper/2211.00708/) (2022)
- [A Guide to Bayesian Networks Software Packages for Structure and Parameter Learning -- 2025 Edition](https://mlsanity.com/paper/2503.17025/) (2025)
- [Next-Best-Trajectory Planning of Robot Manipulators for Effective Observation and Exploration](https://mlsanity.com/paper/2503.22588/) (2025)
- [OccuEMBED: Occupancy Extraction Merged with Building Energy Disaggregation for Occupant-Responsive Operation at Scale](https://mlsanity.com/paper/2505.05478/) (2025)
- [TDGT: A Tabular Data Generation Toolkit supporting adaptive GPU-accelerated Bayesian mixture models, diffusion-based models, and latent-space generative modeling](https://mlsanity.com/paper/2606.31268/) (2026)
- [Local Support Learning](https://mlsanity.com/paper/2610.02126/) (2026)
- [Neural Bayesian Networks for Modular and Scalable Decision-Making Under Uncertainty](https://mlsanity.com/paper/2610.16902/) (2026)

## Abstract (arXiv)

We present pomegranate, an open source machine learning package for probabilistic modeling in Python. Probabilistic modeling encompasses a wide range of methods that explicitly describe uncertainty using probability distributions. Three widely used probabilistic models implemented in pomegranate are general mixture models, hidden Markov models, and Bayesian networks. A primary focus of pomegranate is to abstract away the complexities of training models from their definition. This allows users to focus on specifying the correct model for their application instead of being limited by their understanding of the underlying algorithms. An aspect of this focus involves the collection of additive sufficient statistics from data sets as a strategy for training models. This approach trivially enables many useful learning strategies, such as out-of-core learning, minibatch learning, and semi-supervised learning, without requiring the user to consider how to partition data or modify the algorithms to handle these tasks themselves. pomegranate is written in Cython to speed up calculations and releases the global interpreter lock to allow for built-in multithreaded parallelism, making it competitive with---or outperform---other implementations of similar algorithms. This paper presents an overview of the design choices in pomegranate, and how they have enabled complex features to be supported by simple code.
